Skip to content

Commit ab696f1

Browse files
committed
fix(ci): compiler chaque arch macOS nativement plutôt qu'en croisé
Le job x64 tournait sur macos-latest, qui est Apple Silicon. Tout ce que le chemin macOS de la 1.8.0 a ajouté se cale sur l'arch de l'HÔTE — configure ffmpeg en `--arch=${process.arch}`, installation dans `darwin-${process.arch}`, cargo sans `--target` — donc le job x64 produisait de l'arm64 dans darwin-arm64/, et l'empaquetage échouait sur « Refusing to package an incomplete macOS payload — looked in darwin-x64 ». v1.7.0 livrait bien un DMG x64 : elle n'avait ni addon compositeur ni ffmpeg vendorisé à construire. Les deux sont arrivés avec la 1.8.0, et le `if: false` a empêché quiconque de le voir. Un runner Intel pour x64 règle ça sans faire passer une arch cible à travers le configure d'ffmpeg, cargo et les chemins de sortie — quatre modifications à l'aveugle sur une branche de release, dont aucune n'est testable sans Mac.
1 parent 9e9de68 commit ab696f1

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

.github/workflows/build.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,19 @@ jobs:
8989

9090
build-macos:
9191
name: macOS ${{ matrix.arch }} DMG
92-
runs-on: macos-latest
92+
# Build each arch NATIVELY. `macos-latest` is Apple Silicon, and everything the
93+
# 1.8.0 macOS path added keys off the HOST arch: fetch-ffmpeg-macos.mjs configures
94+
# with `--arch=${process.arch}`, and build-macos-compositor-addon.mjs installs into
95+
# `darwin-${process.arch}` and runs cargo without `--target`. So the x64 job on an
96+
# arm64 runner produced arm64 output in darwin-arm64/, and packaging then failed
97+
# with "Refusing to package an incomplete macOS payload — looked in darwin-x64".
98+
# v1.7.0 shipped an x64 DMG because it had neither the compositor addon nor a
99+
# vendored ffmpeg to build; both arrived with 1.8.0 and nobody could see the
100+
# breakage while this job sat behind `if: false`.
101+
# Running x64 on an Intel runner fixes it without threading a target arch through
102+
# ffmpeg's configure, cargo and the output paths — four blind changes on a release
103+
# branch, none of them testable without a Mac.
104+
runs-on: ${{ matrix.arch == 'x64' && 'macos-15-intel' || 'macos-latest' }}
93105
strategy:
94106
fail-fast: false
95107
matrix:

0 commit comments

Comments
 (0)