|
15 | 15 |
|
16 | 16 | permissions: {} |
17 | 17 |
|
18 | | -# DEPS_VERSION is resolved dynamically in the resolve-deps job |
19 | | -# No hardcoded version here - always uses latest deps-* release |
| 18 | +# FFmpeg dependencies are installed from npm packages (@pproenca/webcodecs-ffmpeg-*) |
| 19 | +# from the pproenca/webcodecs-ffmpeg repository |
20 | 20 |
|
21 | 21 | jobs: |
22 | | - # ============================================================================ |
23 | | - # Resolve latest FFmpeg dependencies release |
24 | | - # This eliminates the need to manually bump DEPS_VERSION |
25 | | - # ============================================================================ |
26 | | - resolve-deps: |
27 | | - name: "Resolve Dependencies" |
28 | | - runs-on: ubuntu-24.04 |
29 | | - permissions: |
30 | | - contents: read |
31 | | - outputs: |
32 | | - deps_version: ${{ steps.deps.outputs.version }} |
33 | | - steps: |
34 | | - - uses: actions/checkout@v6 |
35 | | - - uses: actions/setup-node@v6 |
36 | | - with: |
37 | | - node-version: "22" |
38 | | - - run: npm install --ignore-scripts |
39 | | - - name: Find latest deps release |
40 | | - id: deps |
41 | | - env: |
42 | | - GH_TOKEN: ${{ github.token }} |
43 | | - run: npx tsx scripts/ci/ci-workflow.ts resolve-deps --repo "${{ github.repository }}" |
44 | 22 |
|
45 | 23 |
|
46 | 24 | # ============================================================================ |
|
66 | 44 | test-native: |
67 | 45 | permissions: |
68 | 46 | contents: read |
69 | | - needs: [lint, resolve-deps] |
| 47 | + needs: [lint] |
70 | 48 | runs-on: ubuntu-24.04 |
71 | 49 | steps: |
72 | 50 | - uses: actions/checkout@v6 |
|
88 | 66 | pkg-config \ |
89 | 67 | lcov |
90 | 68 |
|
91 | | - - name: Download FFmpeg from Release |
92 | | - uses: dsaltares/fetch-gh-release-asset@aa2ab1243d6e0d5b405b973c89fa4d06a2d0fff7 # v1.1.2 |
93 | | - with: |
94 | | - repo: ${{ github.repository }} |
95 | | - version: tags/deps-${{ needs.resolve-deps.outputs.deps_version }} |
96 | | - file: ffmpeg-linux-x64-glibc.tar.gz |
97 | | - target: ffmpeg-linux-x64.tar.gz |
98 | | - token: ${{ secrets.GITHUB_TOKEN }} |
99 | | - |
100 | | - - name: Extract FFmpeg and Set Environment |
101 | | - run: npx tsx scripts/ci/ci-workflow.ts extract-ffmpeg --archive "ffmpeg-linux-x64.tar.gz" --out ffmpeg-install |
| 69 | + - name: Install FFmpeg development package |
| 70 | + run: npx tsx scripts/ci/ci-workflow.ts install-ffmpeg --platform linux-x64-glibc --variant non-free |
102 | 71 |
|
103 | 72 | - name: Build and test with sanitizers |
104 | 73 | run: | |
@@ -151,7 +120,7 @@ jobs: |
151 | 120 | contents: read |
152 | 121 | id-token: write # For OIDC attestation |
153 | 122 | attestations: write # For build provenance |
154 | | - needs: [lint, resolve-deps] |
| 123 | + needs: [lint] |
155 | 124 | name: "build-${{ matrix.platform }}" |
156 | 125 | runs-on: ${{ matrix.os }} |
157 | 126 | container: ${{ matrix.container }} |
@@ -198,21 +167,8 @@ jobs: |
198 | 167 | if: runner.os == 'Linux' |
199 | 168 | run: npx tsx scripts/ci/ci-workflow.ts install-build-tools --os linux |
200 | 169 |
|
201 | | - - name: Download FFmpeg from Release |
202 | | - uses: dsaltares/fetch-gh-release-asset@aa2ab1243d6e0d5b405b973c89fa4d06a2d0fff7 # v1.1.2 |
203 | | - with: |
204 | | - repo: ${{ github.repository }} |
205 | | - version: tags/deps-${{ needs.resolve-deps.outputs.deps_version }} |
206 | | - # Map platform to FFmpeg asset name: |
207 | | - # - linux-x64-musl → ffmpeg-linux-x64.tar.gz (musl build) |
208 | | - # - linux-x64-glibc → ffmpeg-linux-x64-glibc.tar.gz |
209 | | - # - darwin-* → ffmpeg-darwin-*.tar.gz |
210 | | - file: ffmpeg-${{ matrix.platform == 'linux-x64-musl' && 'linux-x64' || matrix.platform }}.tar.gz |
211 | | - target: ffmpeg-${{ matrix.platform }}.tar.gz |
212 | | - token: ${{ secrets.GITHUB_TOKEN }} |
213 | | - |
214 | | - - name: Extract FFmpeg and Set Environment |
215 | | - run: npx tsx scripts/ci/ci-workflow.ts extract-ffmpeg --archive "ffmpeg-${{ matrix.platform }}.tar.gz" --out ffmpeg-install |
| 170 | + - name: Install FFmpeg development package |
| 171 | + run: npx tsx scripts/ci/ci-workflow.ts install-ffmpeg --platform "${{ matrix.platform }}" --variant non-free |
216 | 172 |
|
217 | 173 | - name: Build with prebuildify |
218 | 174 | run: npx tsx scripts/ci/ci-workflow.ts prebuildify --arch "${{ matrix.arch }}" --platform "${{ matrix.platform }}"${{ matrix.libc && format(' --libc {0}', matrix.libc) || '' }} |
@@ -258,9 +214,9 @@ jobs: |
258 | 214 | fail-fast: false |
259 | 215 | matrix: |
260 | 216 | include: |
261 | | - # Linux - Node 20/24 (Node 22 already tested in build-native) |
262 | | - - { os: ubuntu-24.04, platform: linux-x64, node: "20" } |
263 | | - - { os: ubuntu-24.04, platform: linux-x64, node: "24" } |
| 217 | + # Linux glibc - Node 20/24 (Node 22 already tested in build-native) |
| 218 | + - { os: ubuntu-24.04, platform: linux-x64-glibc, node: "20" } |
| 219 | + - { os: ubuntu-24.04, platform: linux-x64-glibc, node: "24" } |
264 | 220 | # macOS Intel - Node 20/24 |
265 | 221 | - { os: macos-15-intel, platform: darwin-x64, node: "20" } |
266 | 222 | - { os: macos-15-intel, platform: darwin-x64, node: "24" } |
|
0 commit comments