Skip to content

{ci/eval,release}: migrate supported systems to top-level#492103

Merged
mdaniels5757 merged 2 commits intoNixOS:masterfrom
emilazy:push-rvowqrppzowm
Feb 28, 2026
Merged

{ci/eval,release}: migrate supported systems to top-level#492103
mdaniels5757 merged 2 commits intoNixOS:masterfrom
emilazy:push-rvowqrppzowm

Conversation

@emilazy
Copy link
Copy Markdown
Member

@emilazy emilazy commented Feb 19, 2026

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

@emilazy emilazy added the 8.has: clean-up This PR removes packages or removes other cruft label Feb 19, 2026
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Feb 19, 2026
@emilazy emilazy changed the title release-{small,staging}: minor clean‐ups ci: get supported systems from the target branch Feb 22, 2026
@nixpkgs-ci nixpkgs-ci bot added 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 6.topic: policy discussion Discuss policies to work in and around Nixpkgs backport release-25.11 Backport PR automatically and removed 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Feb 22, 2026
@emilazy
Copy link
Copy Markdown
Member Author

emilazy commented Feb 22, 2026

Not sure if the merge group failures are blocking or not; they don’t block queue entry, but I’m not sure if they’d happen the same way on merge. If they would, then I can split the creation of release-supported-systems.json out into a separate PR that could be merged before this one, though hopefully that’s not necessary… (OTOH, maybe this would temporarily break CI on the 25.11 branch before the backport is merged, as‐is?)

Comment on lines +139 to +159
systems:
runs-on: ubuntu-slim
outputs:
systems: ${{ steps.systems.outputs.systems }}
steps:
- name: Check out the the target branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ inputs.targetSha }}
path: trusted
sparse-checkout: |
pkgs/top-level/release-supported-systems.json

- name: Load supported systems
id: systems
# We need to use jq here to ensure the output is one line.
run: |
jq -r '"systems=\(@json)"' \
trusted/pkgs/top-level/release-supported-systems.json \
>> "$GITHUB_OUTPUT"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can save running an extra job by just doing an API call to get that file from the right branch in the prepare jobs and then pass on the systems value the same as before.

Example here:

// Getting the pinned SHA via API allows us to do one single fetch call for all commits.
// Otherwise we would have to fetch merged/target first, read pinned, fetch again.
// A single fetch call comes with a lot less overhead. The fetch takes essentially the
// same time no matter whether its 1, 2 or 3 commits at once.
async function getPinnedSha(ref) {
if (!ref) return undefined
const { content, encoding } = (await github.rest.repos.getContent({
...context.repo,
path: 'ci/pinned.json',
ref,
})).data
const pinned = JSON.parse(Buffer.from(content, encoding).toString())
return pinned.pins.nixpkgs.revision
}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I migrated this to the API but missed the part about doing it in the prepare job… I’ll fix that now. I also split that part into #493997 so that we don’t break CI on any branch with the file migration.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe I have done this correctly now, and hopefully once this is merged and backported, pre‐merge CI on the follow‐up will succeed on a re‐run.

@emilazy emilazy changed the title ci: get supported systems from the target branch {ci/eval,release}: migrate supported systems to top-level Feb 25, 2026
The supported systems can differ across release branches. The original
file is kept until the GitHub CI is migrated.
For consistency with `release.nix`.
Copy link
Copy Markdown
Member

@mdaniels5757 mdaniels5757 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

(This PR doesn't change ci/github-script/prepare.js to use the new file, but that doesn't matter because the ci/supportedSystems.json file still exists, and changing prepare.js to use pkgs/top-level/release-supported-systems.json in the follow-up PR will work because both files will exist on the follow-up PR's base branch once this is merged).

@mdaniels5757 mdaniels5757 added this pull request to the merge queue Feb 28, 2026
Merged via the queue into NixOS:master with commit f89b3b4 Feb 28, 2026
26 checks passed
@nixpkgs-ci
Copy link
Copy Markdown
Contributor

nixpkgs-ci bot commented Feb 28, 2026

Successfully created backport PR for release-25.11:

@github-actions github-actions bot added the 8.has: port to stable This PR already has a backport to the stable release. label Feb 28, 2026
@emilazy emilazy deleted the push-rvowqrppzowm branch March 2, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: policy discussion Discuss policies to work in and around Nixpkgs 8.has: clean-up This PR removes packages or removes other cruft 8.has: port to stable This PR already has a backport to the stable release. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. backport release-25.11 Backport PR automatically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants