ci: peel the gtk3 multi-window e2e gate into its own job - #611
Merged
Conversation
This was referenced Aug 25, 2026
|
Compass engineering docs preview: https://compass-runner-2699-ci-gtk3.compass-eng-docs.pages.dev Deployed from |
mattwilkinsonn
approved these changes
Aug 25, 2026
rigel-mintaka
force-pushed
the
compass-runner/2698-ci-forge-oracle-peer-job
branch
from
August 25, 2026 19:57
8a92ba8 to
a827f07
Compare
rigel-mintaka
force-pushed
the
compass-runner/2699-ci-gtk3-e2e-peer-job
branch
from
August 25, 2026 19:57
2db9cda to
bc4118f
Compare
rigel-mintaka
force-pushed
the
compass-runner/2698-ci-forge-oracle-peer-job
branch
from
August 25, 2026 20:03
a827f07 to
f3b5219
Compare
rigel-mintaka
force-pushed
the
compass-runner/2699-ci-gtk3-e2e-peer-job
branch
from
August 25, 2026 20:03
bc4118f to
922ad2a
Compare
Base automatically changed from
compass-runner/2698-ci-forge-oracle-peer-job
to
main
August 25, 2026 20:30
Per `docs/designs/infra/ci/compass-ci-job-decomposition/design.md` § Plan → T4: lift the `Multi-window gtk3 e2e gate` step out of the monolithic `gates` job into a dedicated `gtk3-e2e` peer job behind the single required `CI` rollup. Fourth of the five-task decomposition (after pgtest, microvm, forge-oracle); `gates` now holds only the checkout, the two-phase bootstrap, the parity check, the two moon steps, and Retrospect. The gate step is MOVED byte-for-byte — its `if: success()`, `working-directory: go`, `env: CGO_ENABLED: '1'`, and the entire run block (the affected `git -C ..` diff guard, the out-of-band `nix build` of the WebKitGTK/xvfb closure from `tools/toolchain/gtk-e2e-env.nix`, the `xvfb-run` invocation, and the PASS-line guard) are unchanged. Only its parent job changed. The new job runs on bare `ubuntu-latest` (no privileged container), under the shared `workflow_dispatch`/no-op-`edited` guard, `timeout-minutes: 30`, `TMPDIR: /tmp`. Its scaffold matches the forge-oracle peer: - `checkout@v7.0.1` with `fetch-depth: 0` — the gate's affected diff runs `git -C .. diff` against the base branch, so it needs base-branch history. - `install-nix-action@v31` with the in-repo substituter/key pin (not `accept-flake-config`), byte-identical to the sibling jobs. - The phase-one "Put the language toolchains on PATH" bootstrap — the gate runs `go test`, and `gtk-e2e-env.nix` provides only `xvfb-run`/`pkg-config`/`cc`, not `go`, so the phase-one `go` is required. Phase two is deliberately NOT copied: the gate realizes its own WebKitGTK/xvfb closure out of band, so it needs none of the phase-two nixpkgs tools. The job runs unconditionally; its in-step affected guard is retained as defense-in-depth. Hoisting affected detection into a `setup` job and adding a job-level `gtk3_affected` gate is T5's scope. The `CI` rollup gains `gtk3-e2e` in `needs` and in the success assertion (a `gtk3` local shell var for the hyphenated job context, matching the forge-oracle/dogfood-e2e precedent), the echo, the `!= success` gate, and the `::error::` message. No `moon.yml` change: unlike the microvm peel, the frozen design scopes no closure-honesty input to this task. Refs RIG-2699 Co-authored-by: Matt Wilkinson <matt@rigel.build>
mattwilkinsonn
force-pushed
the
compass-runner/2699-ci-gtk3-e2e-peer-job
branch
from
August 25, 2026 20:30
922ad2a to
164c02d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is part of a stack containing 3 PRs:
mainPer
docs/designs/infra/ci/compass-ci-job-decomposition/design.md§ Plan → T4:lift the
Multi-window gtk3 e2e gatestep out of the monolithicgatesjobinto a dedicated
gtk3-e2epeer job behind the single requiredCIrollup.Fourth of the five-task decomposition (after pgtest, microvm, forge-oracle);
gatesnow holds only the checkout, the two-phase bootstrap, the parity check,the two moon steps, and Retrospect.
The gate step is MOVED byte-for-byte — its
if: success(),working-directory: go,env: CGO_ENABLED: '1', and the entire run block (the affectedgit -C ..diff guard, the out-of-band
nix buildof the WebKitGTK/xvfb closure fromtools/toolchain/gtk-e2e-env.nix, thexvfb-runinvocation, and the PASS-lineguard) are unchanged. Only its parent job changed.
The new job runs on bare
ubuntu-latest(no privileged container), under theshared
workflow_dispatch/no-op-editedguard,timeout-minutes: 30,TMPDIR: /tmp. Its scaffold matches the forge-oracle peer:checkout@v7.0.1withfetch-depth: 0— the gate's affected diff runsgit -C .. diffagainst the base branch, so it needs base-branch history.install-nix-action@v31with the in-repo substituter/key pin (notaccept-flake-config), byte-identical to the sibling jobs.go test, andgtk-e2e-env.nixprovides onlyxvfb-run/pkg-config/cc,not
go, so the phase-onegois required. Phase two is deliberately NOTcopied: the gate realizes its own WebKitGTK/xvfb closure out of band, so it
needs none of the phase-two nixpkgs tools.
The job runs unconditionally; its in-step affected guard is retained as
defense-in-depth. Hoisting affected detection into a
setupjob and adding ajob-level
gtk3_affectedgate is T5's scope.The
CIrollup gainsgtk3-e2einneedsand in the success assertion (agtk3local shell var for the hyphenated job context, matching theforge-oracle/dogfood-e2e precedent), the echo, the
!= successgate, and the::error::message.No
moon.ymlchange: unlike the microvm peel, the frozen design scopes noclosure-honesty input to this task.
Refs RIG-2699
Co-authored-by: Matt Wilkinson matt@rigel.build