chore(bindings): regenerate bindings with NixOS header discovery #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: FFmpeg library test | |
| on: | |
| push: | |
| branches: [ main ] | |
| paths: | |
| - '.github/workflows/ffmpeg-test.yml' | |
| - 'internal/builder/**' | |
| - '*.gen.go' | |
| workflow_dispatch: | |
| permissions: | |
| pull-requests: write | |
| contents: write | |
| jobs: | |
| ffmpeg-test: | |
| name: Build FFmpeg library for ${{ matrix.os }} ${{ matrix.arch }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - os: linux | |
| arch: amd64 | |
| runner: ubuntu-24.04 | |
| - os: linux | |
| arch: arm64 | |
| runner: ubuntu-24.04-arm | |
| - os: darwin | |
| arch: amd64 | |
| runner: macos-15-intel | |
| - os: darwin | |
| arch: arm64 | |
| runner: macos-latest | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24' | |
| cache: true | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| cache-bin: false | |
| - uses: taiki-e/cache-cargo-install-action@v2 | |
| with: | |
| tool: cargo-c | |
| - name: Install Linux dependencies | |
| if: matrix.os == 'linux' | |
| run: sudo apt-get update && sudo apt-get install -y yasm nasm meson gperf python3 | |
| - name: Install macOS dependencies | |
| if: matrix.os == 'darwin' | |
| run: brew update && brew install yasm autoconf ragel meson nasm automake libtool python3 | |
| - name: Calculate file hashes | |
| id: file-hashes | |
| run: | | |
| echo "libraries-hash=$(sha256sum internal/builder/libraries.go | cut -d' ' -f1 | head -c 8)" >> $GITHUB_OUTPUT | |
| echo "buildsystems-hash=$(sha256sum internal/builder/buildsystems.go | cut -d' ' -f1 | head -c 8)" >> $GITHUB_OUTPUT | |
| - name: Cache FFmpeg source downloads | |
| uses: actions/cache@v4 | |
| with: | |
| path: .build/downloads | |
| # Workaround for GitHub Actions bug: https://github.com/actions/runner-images/issues/13341 | |
| # hashFiles() broken on macOS runners as of 2024-11-23, using calculated hash instead | |
| key: ${{ runner.os }}-${{ runner.arch }}-ffmpeg-downloads-${{ matrix.os == 'darwin' && steps.file-hashes.outputs.libraries-hash || hashFiles('internal/builder/libraries.go') }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ runner.arch }}-ffmpeg-downloads- | |
| - name: Cache compiled dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .build/staging | |
| .build/build | |
| # Workaround for GitHub Actions bug: https://github.com/actions/runner-images/issues/13341 | |
| # hashFiles() broken on macOS runners as of 2024-11-23, using calculated hash instead | |
| key: ${{ runner.os }}-${{ runner.arch }}-ffmpeg-deps-${{ matrix.os == 'darwin' && format('{0}-{1}', steps.file-hashes.outputs.libraries-hash, steps.file-hashes.outputs.buildsystems-hash) || hashFiles('internal/builder/libraries.go', 'internal/builder/buildsystems.go') }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ runner.arch }}-ffmpeg-deps- | |
| - name: Build FFmpeg library | |
| run: go run ./internal/builder/ | |
| - name: List built files | |
| run: ls -lh lib/${{ matrix.os }}_${{ matrix.arch }}/ |