-
Notifications
You must be signed in to change notification settings - Fork 68
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
CI Workflow Refactoring #1637
CI Workflow Refactoring #1637
Conversation
Ah shoot looks like I need to fix the default tag. Will find fix soon |
I think this PR is prematurely pushing updated docker images to GHCR as |
Thanks for building this system for us to review. I think there's a lot to discuss and so many different factors to consider. |
My fault, sorry about that. What is the backtrace you've found? I'm seeing the image sha used by failing workflow in #1634 as If you want to close this PR until we fix the problem so that CI works for other PRs, that's fine with me. |
I'm not sure if we need to close it, or just prevent it from pushing with the |
I retagged an older version with the |
76ea34b
to
d8f0324
Compare
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.
I look forward to chatting about some of these questions.
conda, | ||
] | ||
|
||
name: Push Dependency Image |
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 should only happen on a push
to develop
right?
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.
Yes, good catch. Right now this workflow only runs on PR and a push to main
, do you want to finally introduce a develop
branch workflow like we've discussed in the past?
I'm not convinced that my manual caching between jobs is working correctly, I need to dig into this more. Also... just stumbled across this which might allow us to simplify the custom action |
Still working through this downstream testing PR, but it looks like #1634 might've broken Cycamore @gonuke @nuclearkatie |
Yes, it did, see cycamore#569. #1634 changed the behavior of material buy policy, including the I have a PR open that will fix it, cycamore#568. Also, there's a stray unrelated (sink, vs that PR is about storage) failing test that I have cycamore#570 open for |
Thanks or the explanation @nuclearkatie This was helpful in demonstrating this PRs capabilities (or lack thereof). Thanks to the failing cycamore build we now have an example of failing downstream tests. I fixed the workflow so that downstream failures don't inhibit us from merging a Cyclus PR. Unfortunately, the failing downstream tests dont present themselves in this PR discussion in any way, you have to view the workflow summary to see the warnings. @gonuke do you have any thoughts about this? I wish it were more convenient to return warnings instead of success/failure but Github doesn't seem to have that functionality in place natively |
Hmmm.... that's annoying. What about something like this: https://github.com/marketplace/actions/add-pr-comment |
Downstream build statuses using cyclus_22.04_apt
|
Downstream build statuses using cyclus_20.04_conda
|
Downstream build statuses using cyclus_20.04_apt
|
Downstream build statuses using cyclus_22.04_conda
|
Please see cycamore PR #573 for notes on some of the changes that I've made (also involved is cymetric PR #190). I am finally confident that the workflows are caching layers and images appropriately, and downstream testing is using correct images to build from. We are still seeing cycamore build failures but this is expected until cycamore PR #568 is merged (and it currently gives us a good example of what happens when downstream testing fails). Also, since this PR now utilizes build arguments in the cycamore and cymetric Dockerfiles, those two PRs must be merged first before this can be merged. Currently the workflow checks out the |
Also... thanks to using the registry as a cache backend, we no longer need to maintain <pkg_mgr>-deps images to speed up our workflows. Thus, I renamed the |
With that - marking this as ready for review. Some things that I changed since we met on Wednesday:
Note: I marked this ready for review but as we discussed we must merge cymetric #573 first, update cycamore PR #190 and merge, then update this PR and merge |
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.
Some repeated some new comments... mostly minor
Merging because the code coverage reduction is an artifact of increased testing scope |
This branch uses a custom action (currently in my repo) to build docker images using the Dockerfiles we have in our repos. The action is as follows:
I separated the Dockerfile into one that just builds the dependency images and one that builds cyclus. I also moved code coverage into its own workflow since it is more in-depth than just building a Dockerfile
Changes to the old workflows:
build_test.yml
cyclus.dockerfile
build_test_publish.yml
I couldn't find a great way to implement this without redundancy (or the multi-stage-build action we used before), so I'm open to ideas (I did find an action that might allow us to share artifacts between workflows but I fear that may end up adding much more complexity than its worth)
deps.dockerfile
using the custom action and uploads a tarball artifactmain
)publish_release.yml
github.ref_name
I'm sure there must be some details I'm forgetting. @gonuke what thoughts do you have?