Skip to content

Commit b58c97c

Browse files
mkschulzeclaude
andcommitted
ci(mac): upload macos-arm64 ffmpeg tree as one-shot artifact (universal-build prep)
Bundling-strategy iteration toward macOS universal builds. The mac-14 runner already produces libs/ffmpeg/macos-arm64/ during the existing "Vendor LGPL ffmpeg" step, but the working tree is discarded when the runner shuts down. Capturing it as a uploaded artifact lets us commit it once into the repo (libs/ffmpeg/macos-arm64/), pairing with the already-vendored libs/ffmpeg/macos-x86_64/ to unlock: 1. Local universal mac builds (CMAKE_OSX_ARCHITECTURES="arm64;x86_64") once cmake/ffmpeg.cmake's "warn-and-fall-back-to-host" logic at lines 26-29 is replaced with proper per-arch handling. 2. CI's "Vendor LGPL ffmpeg" + "Verify LGPL discipline" steps to be deleted entirely — pre-built bytes mean a 15-25 min CI step becomes a no-op git checkout. Reduces toolchain-rot surface (no more MSYS2 package list debugging on Windows; mac arm64 source-build openh264 no longer needs to run every CI invocation). Once libs/ffmpeg/macos-arm64/ lands in the repo, both this upload step AND the upstream Vendor/Verify steps can be removed. Pattern can extend to libs/ffmpeg/windows-x86_64/ + libs/ffmpeg/linux-x86_64/ as those CI lanes start succeeding. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent de0e71f commit b58c97c

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

.github/workflows/juce-build.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,20 @@ jobs:
6060
# on any contamination.
6161
run: bash scripts/verify_ffmpeg_lgpl.sh
6262

63+
- name: Upload vendored macos-arm64 ffmpeg tree (one-shot for bundling)
64+
# Phase 23 (regression-fix scope) iteration: capture the arm64 ffmpeg
65+
# vendored tree built on the macos-14 runner so we can commit it to
66+
# libs/ffmpeg/macos-arm64/ locally, then skip the from-source rebuild
67+
# entirely on subsequent CI runs and unlock universal-mac builds. This
68+
# step is intentionally one-shot — once libs/ffmpeg/macos-arm64/ lands
69+
# in the repo, both this upload step AND the Vendor/Verify steps above
70+
# can be deleted (replaced by a no-op git checkout).
71+
uses: actions/upload-artifact@v4
72+
with:
73+
name: libs-ffmpeg-macos-arm64
74+
path: libs/ffmpeg/macos-arm64/
75+
retention-days: 7
76+
6377
- name: Configure CMake
6478
# Production-target-only config for v1.3 betas — matches beta.20.5
6579
# surface. JAMWIDE_BUILD_TESTS + JAMWIDE_VIDEO_SPIKE pulled the test

0 commit comments

Comments
 (0)