Use Meson to build all reference decoders #27
Workflow file for this run
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
| # Fluster - testing framework for decoders conformance | |
| # Copyright (C) 2025, Fluendo, S.A. | |
| # | |
| # CI workflow to build all reference decoders on multiple platforms | |
| name: Build Reference Decoders | |
| on: | |
| push: | |
| branches: | |
| - master | |
| paths: | |
| - 'subprojects/**' | |
| - 'meson.build' | |
| - 'meson_options.txt' | |
| - 'build/**' | |
| - '.github/workflows/build-decoders.yml' | |
| pull_request: | |
| branches: | |
| - master | |
| paths: | |
| - 'subprojects/**' | |
| - 'meson.build' | |
| - 'meson_options.txt' | |
| - 'build/**' | |
| - '.github/workflows/build-decoders.yml' | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| shell: ${{ matrix.shell }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Linux x86_64 | |
| os: ubuntu-22.04 | |
| arch: x86_64 | |
| artifact: decoders-linux-x86_64 | |
| shell: bash | |
| - name: Linux ARM64 | |
| os: ubuntu-22.04-arm | |
| arch: arm64 | |
| artifact: decoders-linux-arm64 | |
| shell: bash | |
| - name: Windows x86_64 | |
| os: windows-2022 | |
| arch: x64 | |
| artifact: decoders-windows-x86_64 | |
| shell: msys2 {0} | |
| - name: macOS ARM64 | |
| os: macos-14 | |
| arch: arm64 | |
| artifact: decoders-macos-arm64 | |
| shell: bash | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| # Linux dependencies | |
| - name: Install dependencies (Linux) | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ninja-build cmake build-essential unzip curl | |
| # macOS dependencies | |
| - name: Install dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: brew install ninja cmake meson | |
| # Windows dependencies - use MSYS2/UCRT64 | |
| - name: Setup MSYS2 (Windows) | |
| if: runner.os == 'Windows' | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: UCRT64 | |
| update: true | |
| install: >- | |
| mingw-w64-ucrt-x86_64-toolchain | |
| mingw-w64-ucrt-x86_64-cmake | |
| mingw-w64-ucrt-x86_64-ninja | |
| mingw-w64-ucrt-x86_64-meson | |
| mingw-w64-ucrt-x86_64-python | |
| mingw-w64-ucrt-x86_64-python-pip | |
| git | |
| unzip | |
| curl | |
| - name: Install Meson | |
| if: runner.os != 'Windows' | |
| run: pip install meson ninja | |
| - name: Download dependencies | |
| run: python3 build/download_deps.py | |
| - name: Configure Meson | |
| run: meson setup builddir | |
| - name: Build decoders | |
| run: meson compile -C builddir | |
| - name: Upload decoders | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact }} | |
| path: decoders/ | |
| if-no-files-found: warn |