Skip to content

macos-build-test must depend on prepare-image#6338

Merged
Fedr merged 2 commits into
masterfrom
ci/macos-needs-prepare-image
Jun 28, 2026
Merged

macos-build-test must depend on prepare-image#6338
Fedr merged 2 commits into
masterfrom
ci/macos-needs-prepare-image

Conversation

@Fedr

@Fedr Fedr commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Problem

macos-build-test declared needs: [ config ] only, while every other build-test job (windows, ubuntu-x64, ubuntu-arm64, linux-vcpkg, emscripten, emscripten-c-bindings) gates on [ config, prepare-image ].

The macOS job downloads the CBindings artifact produced by generate-c-bindings, which itself needs: [ config, prepare-image ]. So whenever prepare-image actually rebuilds the Docker images (e.g. a vcpkg/toolchain bump), generate-c-bindings starts late, but macOS does not wait for prepare-image and starts immediately:

  1. macOS spends ~30 min on checkout / thirdparty / MRBind / venv,
  2. then hits Wait for C bindings, whose wait-for-job has a 1800 s (30 min) cap,
  3. generate-c-bindings still hasn't finished → the wait times out and the whole macOS matrix fails.

Real failure: run 28315942681, macОС arm64/DebugTimed out after 1800s waiting for job "generate-c-bindings" after 31m22s of wasted runner time, across every macOS cell.

Fix

Add prepare-image to macos-build-test's needs, matching all the other build-test jobs. macOS now starts only after the images are ready, so generate-c-bindings is already running in parallel by the time macOS reaches Wait for C bindings, and the wait resolves normally instead of burning a runner for an hour and failing.

CI note

Only the orchestration of the macOS job changes. Unaffected platforms are disabled via disable-build-* labels. generate-c-bindings and its image always run regardless (no disable condition), so the macOS → prepare-image → generate-c-bindings chain is still exercised.

generate-c-bindings needs prepare-image and produces the CBindings
artifact the macOS job downloads. macos-build-test only needed config,
so when prepare-image rebuilds images, macOS started early, burned ~30
min, then timed out the 1800s "Wait for C bindings" step because
generate-c-bindings hadn't finished. Gate macOS on prepare-image like
every other build-test job.
@Fedr Fedr merged commit f8e13de into master Jun 28, 2026
21 checks passed
@Fedr Fedr deleted the ci/macos-needs-prepare-image branch June 28, 2026 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant