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
6 changes: 4 additions & 2 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -560,8 +560,10 @@ jobs:
# Match the admission job's runner and Xcode. The cache key carries the
# toolchain and the build paths, so a mismatch is a miss, not a wrong hit.
# Pull requests are what restore this seed, so track the runner the
# admission job picks for `pull_request`, not the merge-queue one.
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'macos-26' || vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15' }}
# admission job picks for `pull_request`, not the merge-queue one. On the
# 6 vCPU macOS 26 pool, use its 12 vCPU sibling: same image and Xcode,
# no pull-request queue (see seed-derived-data.yml).
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'macos-26' || vars.MACOS_RUNNER_PR == 'blacksmith-6vcpu-macos-26' && 'blacksmith-12vcpu-macos-26' || vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15' }}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
environment: ${{ github.ref == 'refs/heads/main' && 'ci-cache-writer' || '' }}
timeout-minutes: 75
env:
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/seed-derived-data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ env:
# push replaces that pending run, so the published seed is never more than
# about one build behind main. tests/test_seed_derived_data.py pins this.
concurrency:
group: seed-derived-data-${{ github.repository_owner != 'manaflow-ai' && 'macos-26' || vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15' }}
group: seed-derived-data-${{ github.repository_owner != 'manaflow-ai' && 'macos-26' || vars.MACOS_RUNNER_PR == 'blacksmith-6vcpu-macos-26' && 'blacksmith-12vcpu-macos-26' || vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15' }}
cancel-in-progress: false

jobs:
Expand Down Expand Up @@ -83,7 +83,11 @@ jobs:
if: needs.decide.outputs.build == 'true'
# Must match pull-request compile admission: the seed key carries the
# toolchain and the build paths, so a mismatch is a miss, not a wrong hit.
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'macos-26' || vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15' }}
# The 12 vCPU macOS 26 pool runs the same image and Xcode as the 6 vCPU
# one admission uses, but pull requests do not queue on it: on 2026-09-24
# seeds waited 19-25 minutes for a 6 vCPU runner while 12 vCPU jobs
# started in 15 s. Neither key names the runner size.
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'macos-26' || vars.MACOS_RUNNER_PR == 'blacksmith-6vcpu-macos-26' && 'blacksmith-12vcpu-macos-26' || vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15' }}
environment: ${{ github.ref == 'refs/heads/main' && 'ci-cache-writer' || '' }}
timeout-minutes: 60
env:
Expand Down
14 changes: 14 additions & 0 deletions tests/test_seed_derived_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,20 @@ def test_every_main_push_seeds_incrementally_under_the_key_admission_reads(self)
_, admission_spm = named(steps("ci-macos.yml", "macos-compile-admission"), "Cache Swift packages")
self.assertEqual(seed_spm["with"]["key"], admission_spm["with"]["key"])

def test_the_seed_pool_differs_from_admission_only_in_runner_size(self):
# Seeds used to queue behind pull requests on admission's own pool.
# They may move to a larger runner of the same image, since neither
# the seed key nor the product key names the size, but never to
# another image or Xcode.
runs_on = load("seed-derived-data.yml")["jobs"]["seed"]["runs-on"]
admission = load("ci-macos.yml")["jobs"]["macos-compile-admission"]["runs-on"]
larger = "vars.MACOS_RUNNER_PR == 'blacksmith-6vcpu-macos-26' && 'blacksmith-12vcpu-macos-26'"
self.assertIn(larger, runs_on)
# Any other pool value is admission's pull-request pool, unchanged.
fallback = "vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15'"
self.assertTrue(runs_on.rstrip("} ").endswith(f"{larger} || {fallback}"), runs_on)
self.assertIn(fallback, admission)

def test_main_push_publishes_the_product_admission_would_compile(self):
"""Pull requests adopt this product in place of compiling, so it has to
be the admission product: same key, same staging, same packaging, same
Expand Down
Loading