Migrate CI pipeline from CircleCI to GitHub Actions#103
Migrate CI pipeline from CircleCI to GitHub Actions#103reyang merged 15 commits intoopen-telemetry:masterfrom Brandon-Kimberly:master
Conversation
|
Could you please rebase? It seems this contains lots of unrelated changes. |
I'm sorry. Could you please elaborate on how I would do that? I tried to rebase before submitting but I guess I messed it up somehow. |
You could do a hard reset of your branch to If you don't mind losing commit history, you can reset your branch to |
anuraaga
left a comment
There was a problem hiding this comment.
Nice README updates :) Left some small comments on the ci config
|
@Brandon-Kimberly I'm looking at the windows failures... When I scroll through the output in Perhaps you could format the workflow file run commands on multiple lines to make it easier to read? Also, perhaps there is a difference between the windows shell and ubuntu shell wrt to space-separated scripts on a single line? Try this: |
Also removed the whitespace lines within the jobs.
This fixes an issue with the Windows jobs not running multiple executables in the same line.
Was mistakenly executing bazel.build test when it should be running the format tool.
I accidentally messed up the rebasing. Fixing now. |
Wow you're right! Windows does only allow one executable per line. The others are ignored. Putting the different run commands on separate lines fixed one of the Windows jobs. Unfortunately one still fails stating that "The term './ci/install_windows_protobuf.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program." |
Great! Perhaps you need to explicitly state that you want powershell as the shell? EDIT: Nevermind (https://github.blog/changelog/2019-10-17-github-actions-default-shell-on-windows-runners-is-changing-to-powershell/) EDIT2: It seems that You can also try to use a Windows-y slash in the paths: e.g. @Brandon-Kimberly You could also split the three commands (or the last command, which is the one failing) into a separate run: task... Then work on unifying them into a single run-command after the PR is merged? :) |
|
Update: After trying the suggestions above, one of the Windows jobs now passes correctly! However, the Windows OTProtocol test still fails on account of not being able to locate the file "\ci\install_windows_protobuf.ps1". I have tried to fix this by using '' instead of '/' and by specifying that the job uses powershell core. But the test is still failing. If anybody has any suggestions I would be very thankful! Additionally, the format job always fails as well. The job runs the format tool correctly and says that some files do not abide by the formatting specifications. Running the format tool on my local machine changes a few files including ci/setup_windows_cmake.ps1, tools/git-cl.cmd, and tools/setup-devenv.cm. However, when trying to push those files to the remote repository I am met with this warning: "warning: LF will be replaced by CRLF in tools/setup-devenv.cmd. Again, I welcome any help on this issue. |
|
@Brandon-Kimberly I finally found the issue on Windows: it is simply the To fix this, change (remove trap { $host.SetShouldExit(1) }
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
$VCPKG_DIR=(Get-Item -Path ".\").FullName
./bootstrap-vcpkg.bat
./vcpkg integrate install
./vcpkg install benchmark:x64-windows
./vcpkg install gtest:x64-windowsto: (add Push-Location and Pop-Location) trap { $host.SetShouldExit(1) }
git clone https://github.com/Microsoft/vcpkg.git
Push-Location -Path vcpkg
$VCPKG_DIR=(Get-Item -Path ".\").FullName
./bootstrap-vcpkg.bat
./vcpkg integrate install
./vcpkg install benchmark:x64-windows
./vcpkg install gtest:x64-windows
Pop-LocationI think it is more consistent to use / in paths (in the github actions workflow file) on Windows as well as this was not the issue. Do what you please :) |
|
@Brandon-Kimberly ok, I think I figured out the format issue as well
(this is also why git commands give warnings as the one you saw)
from: elif [[ "$1" == "format" ]]; then
tools/format.sh
CHANGED="$(git ls-files --modified)"to: elif [[ "$1" == "format" ]]; then
tools/format.sh
# normalize file endings according to .gitattributes
git add --renormalize .
CHANGED="$(git ls-files --modified)" |
This should stop the format CI job always failing.
This fixes the Windows job from always failing.
Was split up earlier due to one of the jobs always resulting in a failure.
Thanks this worked! I figured it had something to do with line endings but was unsure how to modify the format job to account for this. |
Thank you, this worked as well! I guess the problem was that the job ended up running in a different directory then I thought. Thank you for all your help! 😄 |
pyohannes
left a comment
There was a problem hiding this comment.
Thanks, that looks really great!
...again. Some jobs were still not displaying the full name on the GitHub Actions UI.
pyohannes
left a comment
There was a problem hiding this comment.
Looks great, I think it's ready to go. I have one small nit that's not critical (yet).
Was previously set to run on Ubuntu latest but Ubuntu 20.04 does not support GCC 48.
|
Branch is rebased and should be good to go! |
|
Oops, |
|
Fix in #222 |

I implemented the transition of the CI pipeline in the OpenTelemetry C++ repository from CircleCI to GitHub Actions. More specifically, I have implemented a GitHub Actions workflow with separate jobs to run all tests that were previously running in CircleCI. I’m submitting this PR to add the GitHub Actions workflows for the repository. I will be submitting another PR for the integration with codecov.io (http://codecov.io/) for coverage reports to be displayed in the repository.
This is a first cut at migrating the CI pipeline from CircleCI to GitHub Actions addressing issue #102 (#102). All CircleCI jobs and tests have been ported over to Actions. Note: I have left the CircleCI config file in the repository for now.
Update
All jobs are running correctly now and this PR, unless anybody has more feedback, should be good to go!