Commit Graph

29 Commits

Author SHA1 Message Date
Aliaksandr
a100d091a0 ci/eval: name the base branch in the performance comparison summary
The performance comparison summary previously stated it compared against
"its pull request base branch (e.g., 'master')" regardless of the actual
base branch.

Plumb the base branch classification computed in prepare.js through the
eval workflow to the `compare` derivation so the summary names the real
base branch (e.g. "staging-25.11"). The local `eval.full` helper defaults
to "master", matching its touched-files convention.

Assisted-by: claude-code with claude-opus-4-8[1m]-high
2026-06-17 01:08:45 +03:00
dependabot[bot]
d90a8da39f .github: Bump actions/checkout from 6.0.2 to 6.0.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](de0fac2e45...df4cb1c069)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 11:22:54 +00:00
dependabot[bot]
b7e66be21f .github: Bump actions/github-script from 8.0.0 to 9.0.0
Bumps [actions/github-script](https://github.com/actions/github-script) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](ed597411d8...3a2844b7e9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 11:23:10 +00:00
Jamie Magee
55b21e9fd6 workflows: document write permissions 2026-03-04 14:46:50 -08:00
Emily
fcb9bf6c05 ci: get supported systems from the target branch 2026-03-01 16:07:49 -05:00
dependabot[bot]
0f2f886044 build(deps): bump actions/checkout from 6.0.1 to 6.0.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8e8c483db8...de0fac2e45)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 12:24:55 +00:00
Michael Daniels
a4d5f8a6b1 {workflows/eval,ci/github-script}: check for mass rebuilds targeting master/release-* branches 2026-01-19 13:02:09 -05:00
dependabot[bot]
25c33e559a build(deps): bump actions/checkout from 6.0.0 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1af3b93b68...8e8c483db8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 11:03:57 +00:00
Wolfgang Walther
2dd1eca32b workflows/merge-group: make check & build required
These jobs were recently introduced into the merge queue - but I forgot
to make them actually required. They sometimes fail - but the PR is
still merged. Dumb.
2025-11-25 16:47:31 +01:00
Wolfgang Walther
1289456d3b workflows: run smaller jobs on ubuntu-slim
This is in public preview now. These runners run in a docker container
with only a single vCPU instead of 4 like the other jobs. For most of
our jobs, this should be plenty, except for eval and linting.
2025-11-25 11:44:14 +01:00
dependabot[bot]
6029d82a8a build(deps): bump actions/checkout from 5.0.0 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...1af3b93b68)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 12:17:05 +00:00
Wolfgang Walther
3bc31e0474 workflows: invalidate cachix cache
Since it was previously possible, in theory, to extract the
CACHIX_AUTH_TOKEN via Nix eval on untrusted inputs, this rotates the
token and clears the cache - and while on it moves to a new cache, that
is owned by a newly created nixpkgs-ci org instead of an individual.
2025-11-11 19:03:42 +01:00
Wolfgang Walther
5d6dd23117 workflows/pull-request-target: never write to cachix from PRs
Evaluating untrusted code in the presence of secrets is unsafe in
general, thus we only provide the cachix auth token when these jobs run
in the merge queue. This is enough for all practical purposes, PRs will
be able to pull stuff from cachix that was built in the Merge Queue
previously.
2025-11-11 19:03:41 +01:00
Wolfgang Walther
e18eeeb441 workflows/merge-queue: run owners check job 2025-11-11 19:03:39 +01:00
Wolfgang Walther
ec50d453b6 workflows/merge-queue: run build jobs 2025-11-11 18:58:30 +01:00
Wolfgang Walther
4147f97f9e workflows/merge-group: refactor prepare step to github-script
Less Bash, more JavaScript - it's policy!
2025-11-11 18:34:45 +01:00
Wolfgang Walther
6ae5f33c85 workflows/merge-group: compare eval against previous queue item
This runs the compare step in the merge queue, to get a combined diff
against the previous queue item. This can be used as a base for multiple
different features in the future, for example preventing accidental mass
rebuilds in the merge queue, or diffing of packages' meta.
2025-10-31 10:58:45 +01:00
Wolfgang Walther
67506595ac workflows/test: prefix artifacts
Once we start running similar jobs in the PR and Merge Queue workflows,
the Test workflow will run into a problem: Both nested workflows will
try to upload the same artifacts, which errors out.

By providing a prefix to use for artifact names, this will be a
non-issue when we later run more of Eval in the merge queue or when we
add the build jobs to the queue as well.
2025-10-30 12:16:59 +01:00
Winter
65bb095948 ci: fix issues found by zizmor
Co-authored-by: Thomas Gerbet <thomas@gerbet.me>
2025-10-26 20:19:08 +01:00
Wolfgang Walther
bc37e667c4 Revert "workflows/eval: run Lix in the merge queue"
This reverts commit 7ed2c7e297.

This breaks the performance report, because it compares Lix vs Nix and
needs more thought before re-application.
2025-10-16 18:46:19 +02:00
Wolfgang Walther
7ed2c7e297 workflows/eval: run Lix in the merge queue
This change runs Lix on the target commit and Nix on the merged commit.
This does two things for us at once:
- We test both Lix and Nix.
- We ensure that both Lix and Nix produce the same output hashes.

If Lix and Nix were to produce different output hashes at some point,
this would show up as rebuilds in every PR.
2025-10-14 19:47:27 +02:00
Wolfgang Walther
17eb6dcb27 workflows: move eval from push to queue
Running eval in the merge queue prevents eval failures after merging
multiple PRs with semantic merge conflicts.

It's also the base for allowing more sophisticated checks about rebuild
counts in the merge queue later.

When branches are directly pushed to, such as for periodic merges, this
will not run Eval immediately. However, the next PR will run it as part
of its Eval step and will cache the results. Any further PR will then
benefit from the same caching again.

This also avoids running Eval twice when pushing to staging-next or
haskell-updates, where a PR is open at the same time. Here, the PR's
Eval still runs on the push, of course.
2025-10-14 19:47:20 +02:00
Wolfgang Walther
43a8f20d58 workflows/{merge_group,pr}: fail status check explicitly
When the merge queue fails, the workflow currently does not post a
negative result - and GitHub Actions waits for the status check to time
out, which takes 60 minutes.

This, of course, is a waste of time and resources. By explicitly failing
the status check, we boot the PR out of the merge queue immediately.
2025-09-11 19:45:06 +02:00
dependabot[bot]
4ea8216576 build(deps): bump actions/github-script from 7.0.1 to 8.0.0
Bumps [actions/github-script](https://github.com/actions/github-script) from 7.0.1 to 8.0.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](60a0d83039...ed597411d8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 11:21:35 +00:00
Wolfgang Walther
5ff32763b2 workflows/{merge-group,pr}: avoid posting "no PR failures" for pull_request trigger
The required status checks should depend on exactly one workflow,
triggered via pull_request_target or merge_group. Anything that is
triggered by pull_request is for testing purposes of the workflows
themselves only.
2025-08-24 20:11:24 +02:00
Wolfgang Walther
2c25cb0891 workflows/{merge-group,pr}: post "no PR failures" status manually
Posting the status manually allows us to avoid the strange "skipped ==
success" logic and properly skip the `unlock` job for pull_request
events in the next commit.

This should be much easier to understand than the previous logic.
2025-08-24 20:11:23 +02:00
Wolfgang Walther
534d41ee9c workflows/test: test merge-group workflow
Changes to the merge-group workflow should also validate that the file
is hooked up correctly and works - otherwise we risk merging CI changes
that cause the merge queue to fail consistently.
2025-08-24 12:07:44 +02:00
Wolfgang Walther
6ee40e7931 workflows/lint: add cachix
For PRs targeting a fast moving branch like master, it might not
actually help because the merge commit will still be different on each
run. But on slower moving branches or when testing in a fork, it can
speed things up.

Since each of these build results is only a few hundred bytes without
any dependencies, it has essentially no cost.

Not adding this to `treefmt`, because this looks at *all* the files in
the repo, so needs to re-run even when iterating on CI only.
2025-08-20 18:08:06 +02:00
Wolfgang Walther
04c039f993 workflows/merge-group: init
Introduces a basic merge queue workflow to initially only run lints.
This will avoid accidentally merging changes which break nixfmt after
its recent update to 1.0.0.
2025-08-05 15:27:45 +02:00