114 lines
2.3 KiB
YAML
114 lines
2.3 KiB
YAML
---
|
|
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" ]
|
|
|
|
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" ]
|
|
|
|
container:
|
|
image: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
./scripts/install-deps.sh
|
|
|
|
- name: Setup
|
|
run: meson setup 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
|