Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
9 changes: 9 additions & 0 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ concurrency:
jobs:
pipeline:
name: pipeline (${{ matrix.system }})
# RigelBuild fork: this matrix runs on upstream Cachix's self-hosted
# runners (warm nix store + native Apple Silicon), which RigelBuild has
# no runners registered for — so on the fork every leg sits `queued`
# forever. The fork's real PR build gate is the standalone rigel-ci.yml
# `CI` producer (`nix build .#devenv` on a GitHub-hosted runner), which is
# also the branch-protection pin target. Scope this inherited matrix to
# the upstream owner so it skips cleanly on the fork rather than hanging.
# (The richer multi-arch build + cache-push gate is RIG-2449.) (RIG-2213)
if: github.repository_owner == 'cachix'

strategy:
fail-fast: false
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/rigel-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: CI

# Branch-protection gate producing a check-run literally named `CI` for the
# fork's `main` ruleset to pin (RIG-2213). Upstream's own pipeline runs on
# self-hosted runners this fork does not have, so a `needs:`-aggregator over it
# would sit `queued` forever and wedge the pin. This standalone job runs the
# same build command upstream's build.yml runs (`nix build .#devenv`) on a
# GitHub-hosted runner. The devenv substituter is wired explicitly via
# cachix-action (matching upstream build.yml) rather than the flake's
# `nixConfig.extra-substituters`, which nix ignores non-interactively without
# `--accept-flake-config`; without it the build would cold-compile the custom
# Nix fork + full closure from source and risk exhausting the hosted runner.

on:
pull_request:
push:
branches:
- main

concurrency:
group: rigel-ci-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
CI:
runs-on: ubuntu-latest
# Fail fast if a substituter regression forces a cold rebuild of the
# closure, rather than hanging to the 6h job default on the pinned check.
timeout-minutes: 20
steps:
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
- uses: cachix/install-nix-action@13d8dd58da0234aa297dedd986986ccb8e7f3e24 # v31
# Pull-only: no authToken (we do not push to upstream's cache from the
# fork's PR gate). Names the devenv substituter so the closure — notably
# the custom Nix fork `github:cachix/nix/devenv-2.35` and nixd, which are
# not on cache.nixos.org — is fetched, not rebuilt.
- uses: cachix/cachix-action@5f2d7c5294214f71b873db4b969586b980625e71 # v17
with:
name: devenv
- run: nix build -L --show-trace .#devenv
Loading