Meson build system support #149
Workflow file for this run
This file contains 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: Build | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
build: | |
strategy: | |
matrix: | |
sys: | |
- { os: windows-latest, shell: 'msys2 {0}' } | |
- { os: ubuntu-latest, shell: bash } | |
- { os: macos-latest, shell: bash } | |
runs-on: ${{ matrix.sys.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.sys.shell }} | |
steps: | |
- name: Install dependencies (Ubuntu) | |
if: matrix.sys.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get install meson libsndfile1-dev libvolk2-dev libfftw3-dev catch2 | |
- name: Install dependencies (Mac OS) | |
if: matrix.sys.os == 'macos-latest' | |
run: brew install meson libsndfile volk fftw catch2 | |
- name: Install dependencies (Windows) | |
if: matrix.sys.os == 'windows-latest' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: git mingw-w64-x86_64-meson mingw-w64-x86_64-ninja mingw-w64-x86_64-gcc mingw-w64-x86_64-libsndfile mingw-w64-x86_64-fftw mingw-w64-x86_64-volk mingw-w64-x86_64-catch | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure | |
run: meson setup builddir | |
- name: Build | |
run: meson compile -C builddir | |
- name: Test | |
run: meson test -C builddir | |
# TODO: Package | |
# TODO: Upload artifacts | |
# release: | |
# runs-on: "ubuntu-latest" | |
# needs: build | |
# steps: | |
# - name: Get current date | |
# id: date | |
# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | |
# - name: Download binaries | |
# uses: actions/download-artifact@v4 | |
# - name: Release nightly | |
# if: github.ref == 'refs/heads/master' | |
# uses: marvinpinto/[email protected] | |
# with: | |
# repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
# automatic_release_tag: "latest" | |
# prerelease: true | |
# title: "Sigutils nightly (${{steps.date.outputs.date}})" | |
# files: sigutils*/* | |
# - name: Release stable | |
# if: contains(github.ref, 'refs/tags/v') | |
# uses: marvinpinto/[email protected] | |
# with: | |
# repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
# prerelease: false | |
# title: "Sigutils ${{github.ref_name}}" | |
# files: sigutils*/* |