--- name: Build test 'on': push: branches: - main pull_request: branches: - main # ensure that the workflow is only triggered once per PR, subsequent pushes to the PR will cancel # and restart the workflow. See https://docs.github.com/en/actions/using-jobs/using-concurrency concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build-make: runs-on: ubuntu-latest strategy: fail-fast: false matrix: os: [ "alpine", "archlinux", "fedora", "ubuntu:23.10" ] container: image: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Install Dependencies run: | ./scripts/install-deps.sh - name: Build run: | make - name: Run check run: | make check build-meson: runs-on: ubuntu-latest strategy: fail-fast: false matrix: os: [ "alpine", "archlinux", "fedora", "ubuntu:23.10" ] container: image: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Install Dependencies run: | ./scripts/install-deps.sh - name: Setup run: meson setup -D python=enabled -D yaml=enabled build - name: Build run: meson compile -C build - name: Run check run: if ! meson test -C build; then cat build/meson-logs/testlog.txt; false; fi build-windows: runs-on: windows-latest strategy: fail-fast: false matrix: include: - { sys: mingw32 } - { sys: mingw64 } - { sys: ucrt64 } - { sys: clang64 } name: ${{ matrix.sys }} defaults: run: shell: msys2 {0} steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: msystem: ${{matrix.sys}} update: true install: >- git flex bison pacboy: >- toolchain:p meson:p ninja:p libyaml:p swig:p python-setuptools-scm:p - name: '🚧 Build' run: | meson setup -Dtools=true -Dtests=false build meson compile -C build