Create immutable Hydra jobsets for PR and manual CI runs #4
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kaiba/kaiba-infra!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "codex/hydra-pr-manual"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PR and manually dispatched CI runs need Hydra jobsets pinned to their own commits. Add an Ace service that discovers running provisioning CI waiter jobs through GitHub's API, creates immutable
ci-<run-id>-<attempt>jobsets, and triggers each evaluation once with automatic polling disabled. PR merge commits must match the run's head; manual requests must match the dispatched SHA. Existing jobsets cannot be repointed or re-enabled.The service uses systemd credentials and a separate dynamic user. Hydra administration credentials stay on Ace. Main's status and Cachix publication rules remain unchanged; run outputs are disposable and historical results stay visible. One rejected request does not block independent runs. Timestamp checks make trigger retries safe, and explicit API triggering avoids a child-reaping race in the deployed Hydra version's native one-shot mode.
Validation: all 32 Python tests and the full Hydra integration VM pass. Coverage includes admission, attempts, stale merges, pagination, credential handling, retry recovery, a successful real evaluation without an evaluator restart, and backup restoration. Both live PR and manual trials evaluated exactly ten ARM64 jobs once, all ten passed, and their GitHub aggregate gates passed. The evaluator remained stable throughout qualification. Ace's complete candidate test activation also passed; the temporary executable override has been removed.
Companions: https://github.com/PseudoDesign/kaiba-provisioning/pull/93 and https://github.com/PseudoDesign/nix-pseudo-design/pull/11.