New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run CI on Github Actions #1815
Run CI on Github Actions #1815
Conversation
Oh Github actions run on the PR so you get an example underneath! |
Can you rebase this on latest master? The makefile changes look funny here in a way I think they shouldn't. I tried don't have write permissions on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you also include the necessary changes to bors.toml
(maybe commented out for now? though honestly I think we should just be bold and start exercising these now; I don't anticipate a lot of problems)
That is because no size changes were detected for this PR. For an example of a PR with a size change on Imix, see here: Tock-CI#9 |
@ppannuto rebased + addressed other comments |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a great improvement!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I think I didn't really grok this 'steps' thing with the github workflows before. I like the 1:1 mapping of step
to CI target, but I think this is still missing the top-level driver. i.e. you see this:
There is a CI job called "format", so I should be able to run make ci-format
. I think the thing I want would be an additional phony rule in the makefile for each of the jobs
that replicates the steps
list, i.e.
# Replicates the list of steps performed by the `format` job in github actions
.PHONY: ci-format
ci-format: ci-formatting ci-documentation
Putting these up in the "meta-targets" section of the makefile
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bors r+
Thanks for putting up with all my renaming :)
I think we agreed we want to move this direction on the core call, and this is something better evaluated by testing and use, so I'm merging aggressively and we shall see how it works!
bors r- |
Sorry, as soon as I saw you type the bors command I realized that I had changed the ci job names without updating bors.toml to match the new names |
(ready now, pending a review) |
Can you run the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bors r+
Well, arguably I should have noticed that too! :)
Co-authored-by: Hudson Ayers <hayers@stanford.edu>
rebased on master (so the qemu code was in the makefile) and added emulation-check to github actions and bors.toml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bors r+
For real this time!
bors test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bors r+
struggling to understand why bors is failing on this, it works on an identical PR in my test repository (Tock-CI#11). That PR has an identical upstream as well (though it doesn't have travis enabled?) |
Interesting: merging this one manually because bors can't do it, specifically:
|
203: Add a CI tool that prints a size diff for incoming PRs. r=jrvanwhy a=jrvanwhy The diff is computed by building the examples with `make examples` both in the PR's target branch and the merge result, and running `diff` on the result. This is built using GitHub Actions because upstream Tock is moving to GitHub Actions (see tock/tock#1815, and [this core WG discussion](https://github.com/tock/tock/blob/master/doc/wg/core/notes/core-notes-2020-04-24.md#ci-infrastructure-travis-to-github-actions)). Co-authored-by: Johnathan Van Why <jrvanwhy@google.com>
Pull Request Overview
This pull request adds Github Actions based CI to Tock. For now, Github Actions would run in parallel with Travis until we are comfortable that actions is not missing anything that Travis catches.
It also replicates the size reporting script by adding a github check that contains the size diffs. It also saves artifacts on every build that store successfully built .bin files for each board, so that the exact kernel executable produced for each build can be easily obtained and flashed without requiring one to fetch the branch and recompile.
Notably, we split the CI into several logically separate jobs so that they can run in parallel. This does mean that more checks show up at the bottom of each PR.
The total time to run the github actions based CI is about 4 minutes!
Testing Strategy
This pull request was tested by forking into another organization and running CI on various branches.
We tested integration with bors on this fork as well, but for now this PR does not configure Bors to block on Github actions checks.
TODO or Help Wanted
N/A
Documentation Updated
Formatting
make formatall
.