Skip to content

ci(recipe): gate per-target by diff and fold matrix #65

Merged
Typas merged 2 commits into
masterfrom
ci/recipe
May 24, 2026
Merged

ci(recipe): gate per-target by diff and fold matrix #65
Typas merged 2 commits into
masterfrom
ci/recipe

Conversation

@Typas

@Typas Typas commented May 24, 2026

Copy link
Copy Markdown
Owner

No description provided.

Typas and others added 2 commits May 24, 2026 02:02
Previously every push to dev/** ran all 7 OS targets, and mac (the
slowest) ran even for Linux-only script tweaks. Sibling jobs also
couldn't cancel each other.

Now setup runs classify-targets.sh, which diffs the branch against
origin/master (three-dot so merging master in is a no-op for
classification) and emits a JSON matrix of only the affected targets.
ubuntu, mac, and the linux-container set fold into one matrix with
fail-fast=true so any failure cancels the others.

Per-OS script changes are detected by hashing each case "$os" arm in
scripts/install-<recipe>.sh; shared (non-case) edits expand to all
targets. Top-level files (justfile, init.sh, recipe.yml itself) also
expand to all; mac-only files (flake.nix, nix/**) restrict to mac;
os-init/<distro>-init.sh restricts to that distro.

flatpak's mac entry is dropped unconditionally (the mac case is a
no-op message).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The previous standalone mac job set env.HOSTNAME=ci at job scope; the
folded matrix needs it on the mac-specific step instead, otherwise
nix-darwin can't resolve the host flake.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Typas Typas merged commit 47d2cd1 into master May 24, 2026
8 checks passed
@Typas Typas deleted the ci/recipe branch May 24, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant