-
Notifications
You must be signed in to change notification settings - Fork 968
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
refactor(ci): extract node to own workflow #13059
Conversation
To simplify the configuration, extract the node-related steps to their own workflow file. As the node jobs do not require platform dependencies, service containers like postgres or stripe, we can speed up those steps a little by splitting these apart. Signed-off-by: Mike Fiedler <miketheman@gmail.com>
Timings: Before, the combined CI workflow "costs" ~26 GitHub Actions minutes Now with the split, Python ~16 min + Node ~2 min = ~18 minutes, saving 8 minutes of execution time overall Example runs: |
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.
Nice!
Doing a think on how (if at all) we need to adjust branch protection before/after merge. |
We could merge #12263 which makes it so we don't have to adjust required checks when we add/remove them. |
I'm hoping that nothing has to change, since the job names were preserved |
Aha, yes this does seem to be the case. |
I forgot about that one - I wonder how it works across multiple workflow files? |
I remember squinting at that and getting confused even before we had multiple workflows. |
hold the phone - I missed something |
Whoops Signed-off-by: Mike Fiedler <miketheman@gmail.com>
…an/warehouse into miketheman/gha-refactor
Due to a whoopsie, I had removed the actual test command, restored now. Numbers are still better - https://github.com/pypi/warehouse/actions/runs/4246789167/usage Python down to ~21 minutes, so 4 minutes savings, not 8. |
@miketheman it is possible to make it work through some refactoring, like in this example PR: pypa/build#618. |
To simplify the configuration, extract the node-related steps to their own workflow file.
As the node jobs do not require platform dependencies, service containers like postgres or stripe, we can speed up those steps a little by splitting these apart.