-
-
Notifications
You must be signed in to change notification settings - Fork 17.1k
workflows/{pr,push}: init #415006
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
workflows/{pr,push}: init #415006
Conversation
dc153ab to
ddaebfe
Compare
|
PR / Eval / Consistency perhaps? Or Coherence, as in how evaluation all
holds together? I’m following a C theme with Comparison.
Philip (on mobile)
|
ddaebfe to
2780ffa
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 haven't yet gone through the diff in detail, but the concept LGTM
2780ffa to
4743752
Compare
Cool. Once we all agree on the basic concept and also the name "PR" for the main workflow, we can go ahead with Mic92/nixpkgs-review#500, which will support both the current "Eval" and the new "PR". This will take a bit of time until released and available in nixpkgs, but should be done before merging this PR anyway. |
4743752 to
b4f52c9
Compare
This gives us nixpkgs-review 3.4.0 to support NixOS#415006. From the nixpkgs-unstable channel: https://hydra.nixos.org/eval/1816084#tabs-inputs Changes for treefmt-nix: numtide/treefmt-nix@1f3f7b7...a05be41
7eb38b1 to
8cea779
Compare
|
Rebased. The remaining pieces in here are now ready for review. Note: Many Eval jobs will fail for the nixpkgs-review 3.4.0 has been released with support for the "PR" workflow and has hit nixpkgs-unstable. Before merging this, we should wait for it to be in the pinned nixpkgs used for the dev shell and for it to be available in all channels:
|
This gives us nixpkgs-review 3.4.0 to support #415006. From the nixpkgs-unstable channel: https://hydra.nixos.org/eval/1816084#tabs-inputs Changes for treefmt-nix: numtide/treefmt-nix@1f3f7b7...a05be41 (cherry picked from commit a9589ea)
This gives us nixpkgs-review 3.4.0 to support #415006. From the nixpkgs-unstable channel: https://hydra.nixos.org/eval/1816084#tabs-inputs Changes for treefmt-nix: numtide/treefmt-nix@1f3f7b7...a05be41 (cherry picked from commit a9589ea)
c448b87 to
5799a21
Compare
5799a21 to
a2e7f7b
Compare
|
I plan to merge this at some point tomorrow to be able to keep an eye open on the pipelines just in case. Unless somebody with open eyes beats me to it :) |
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.
Nothing screaming out at me in the diff, so 🤞
If there are major issues we can revert and try again, of course.
I had one documentation nit pending, from when I started reviewing the other day. Feel free to ignore.
Those two workflows bundle all the main jobs in two event-specific wrapper workflows. This enables us to do two things later on: - Synchronize the merge commits between most of the jobs run in a PR. - Create a single "required" job to be targeted by GitHub's "required status checks to pass" feature.
We previously moved this out of the main eval workflow to avoid running it on push and/or undrafting the PR. The latter has been removed in the meantime and the former can be checked with a simple condition. Thus we move it back in, to make it part of the 4 main workflows, which will be required before merge eventually.
The overall idea is to use names short enough to fit into the status checks list without shortening. This change mostly happened in the commits before, here we just follow the same pattern for the remaining workflows.
a2e7f7b to
c08b86e
Compare
|
Successfully created backport PR for |
|
Successfully created backport PR for |
This series of commits introduces two wrapper workflows
prandpush, which call most of the other workflows.The primary goal here is, to give us a good base to enable "required status checks". Those work by looking for specific job names. With the old structure, we would have to add all the required jobs to the respective branch protection rule separately - and whenever we added or removed a job or just changed a required job's name, we'd risk blocking PRs from merging entirely. Those would always have to be kept in-sync. With the single "PR" workflow that is introduced here, there is another option: We can then just add a single job
required-to-mergeat the end of this new workflow. This would depend on all other jobs in there and thus only pass when all others do. We can then set up this single job for the branch protection rule. A loud enough comment near that job should prevent accidental renames. And we can easily add or remove jobs from the list of required jobs by addingneedsto that job - without needing to touch the branch protection rules. Neither this "required to merge" job nor branch protection rules are introduced in this PR, yet.There is also another future benefit that we can take advantage of: With this base, we can implement something to solve #406825 (comment) without artifact hackery.
On its own, this PR doesn't give us much except some cosmetics:
I decided to split all the jobs up into 4 main groups:
This split gives us a nice consistent UI (see screenshot below). The status check names are prefixed accordingly and the summary page has collapsed items.
In some cases, much shorter job names, which display much nicer in the graphical display in the summary page.
A single summary page with all artifacts and all jobs listed - much better experience for PR authors. They don't need to click on the right job details, because almost all of them will lead them to the right page. Also easier to see from those summary pages which jobs for that PR failed together.
This also has one downside: It's harder to go through the "Actions" tab and search for failures of specific workflows. They are all grouped in the "PR" workflow now. I think this is outweighed by the ability to use required status checks, though. Heavily so.
The first commit is taken out of #414800 to ease rebasing once that's merged.
TODO:
nixpkgs-review, because theEvalworkflow to fetch the artifacts from is nowPR. Support new "PR" workflow in nixpkgs Mic92/nixpkgs-review#500Things done
Add a 👍 reaction to pull requests you find important.