Skip to content

Workflow file for this run

---
on:
workflow_dispatch:
push:
paths-ignore:
- 'android/**'
- 'build/**'
- 'doc/**'
- 'python/**'
- 'subprojects/**'
- 'systemd/**'
- 'win32/**'
branches:
- master
- v0.23.x
pull_request:
paths-ignore:
- 'android/**'
- 'build/**'
- 'doc/**'
- 'python/**'
- 'subprojects/**'
- 'systemd/**'
- 'win32/**'
branches:
- master
- v0.23.x
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build-linux:
strategy:
matrix:
cc: ['12', '13', '14', '15', '16', '17']
os: [ubuntu-20.04]
runs-on: ${{ matrix.os }}
env:
CC: ccache clang-${{ matrix.cc }}
CXX: ccache clang++-${{ matrix.cc }}
steps:
- id: checkout
uses: actions/checkout@v4
- id: setup-gcc
uses: egor-tensin/setup-clang@v1
with:
version: ${{matrix.cc}}
- id: cache-ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ matrix.os }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libfmt-dev \
libgtest-dev \
libpcre2-dev \
libsystemd-dev libdbus-1-dev \
libicu-dev \
libcurl4-gnutls-dev \
libpcre2-dev \
libavahi-client-dev \
libmad0-dev libmpg123-dev libid3tag0-dev \
libflac-dev libvorbis-dev libopus-dev libogg-dev \
libadplug-dev libaudiofile-dev libsndfile1-dev libfaad-dev \
libfluidsynth-dev libgme-dev libmikmod-dev libmodplug-dev \
libmpcdec-dev libwavpack-dev libwildmidi-dev \
libsidplay2-dev libsidutils-dev libresid-builder-dev \
libavcodec-dev libavformat-dev \
libmp3lame-dev libtwolame-dev libshine-dev \
libsamplerate0-dev libsoxr-dev \
libbz2-dev libcdio-paranoia-dev libiso9660-dev libmms-dev \
libzzip-dev \
libyajl-dev libexpat-dev \
libasound2-dev libao-dev libjack-jackd2-dev libopenal-dev \
libpulse-dev libshout3-dev \
libsndio-dev \
libmpdclient-dev \
libnfs-dev \
libupnp-dev \
libsqlite3-dev \
libchromaprint-dev \
libgcrypt20-dev
- name: Full Build
uses: BSFishy/[email protected]
with:
action: build
directory: output/full
setup-options: -Ddocumentation=disabled -Dtest=true -Dsystemd=enabled -Dpcre=enabled
options: --verbose
meson-version: 0.56.0
- name: Unit Tests
uses: BSFishy/[email protected]
with:
action: test
directory: output/full
setup-options: -Ddocumentation=disabled -Dtest=true -Dsystemd=enabled -Dpcre=enabled
options: --verbose
meson-version: 0.56.0
- name: Mini Build
uses: BSFishy/[email protected]
with:
action: build
directory: output/mini
setup-options: -Dbuildtype=minsize -Dauto_features=disabled -Dtest=true -Ddaemon=false -Dinotify=false -Depoll=false -Deventfd=false -Dsignalfd=false -Dtcp=false -Ddsd=false -Ddatabase=false -Dneighbor=false -Dcue=false -Dfifo=false -Dhttpd=false -Dpipe=false -Drecorder=false -Dsnapcast=false
options: --verbose
meson-version: 0.56.0
build-macos:
runs-on: macos-latest
steps:
- id: checkout
uses: actions/checkout@v4
- id: cache-ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: macos
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Install dependencies
run: |
brew install \
meson ninja \
fmt \
googletest \
icu4c \
ffmpeg \
libnfs \
yajl \
libupnp \
libid3tag \
chromaprint \
libsamplerate \
libsoxr \
flac \
opus \
libvorbis \
faad2 \
wavpack \
libmpdclient
- name: Build
uses: BSFishy/[email protected]
with:
action: build
directory: output
setup-options: -Ddocumentation=disabled -Dtest=true
options: --verbose
meson-version: 0.56.0
- name: Unit Tests
uses: BSFishy/[email protected]
with:
action: test
directory: output
setup-options: -Ddocumentation=disabled -Dtest=true
options: --verbose
meson-version: 0.56.0
build-msys2:
strategy:
matrix:
platform: ['MINGW32', 'MINGW64', 'UCRT64']
defaults:
run:
shell: msys2 {0}
runs-on: windows-latest
steps:
- id: checkout
uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.platform}}
pacboy: >-
cc:p
cmake:p
dbus:p
faad2:p
ffmpeg:p
fmt:p
flac:p
gtest:p
jack2:p
libao:p
libid3tag:p
libmad:p
libmpcdec:p
libopenmpt:p
libsamplerate:p
libshout:p
libsndfile:p
libsoxr:p
libvorbis:p
meson:p
ninja:p
opus:p
pulseaudio:p
shine:p
twolame:p
yajl:p
- name: Compile and Test
run: |
meson setup "${{github.workspace}}/build" -Dbzip2=disabled -Dcdio_paranoia=disabled -Dchromaprint=disabled -Ddocumentation=disabled -Dfluidsynth=disabled -Dicu=disabled -Diso9660=disabled -Dmikmod=disabled -Dmpg123=disabled -Dnfs=disabled -Dsidplay=disabled -Dudisks=disabled -Dupnp=disabled -Dwavpack=disabled -Dzzip=disabled -Dtest=true -Dwarning_level=3
meson compile -C "${{github.workspace}}/build" --verbose
Cygwin:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: 'MSYS'
install: >-
gcc
meson
ninja
- name: Compile and Test
run: |
meson setup build -Dwarning_level=3 -Dcpp_std=gnu++20
meson compile -C build --verbose
FreeBSD:
runs-on: ubuntu-latest
name: FreeBSD
steps:
- uses: actions/checkout@v4
- name: FreeBSD
uses: vmactions/freebsd-vm@v1
with:
prepare: |
pkg install -y curl ninja meson pkgconf libmicrohttpd
run: |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dcpp_std=c++20
meson compile -C "${{github.workspace}}/build" --verbose
NetBSD:
runs-on: ubuntu-latest
name: NetBSD
steps:
- uses: actions/checkout@v4
- name: NetBSD
uses: vmactions/netbsd-vm@v1
with:
release: '9.0'
prepare: |
/usr/sbin/pkg_add curl meson pkgconf libmicrohttpd
run: |
meson setup "${{github.workspace}}/build" -Dwarning_level=3
meson compile -C "${{github.workspace}}/build" --verbose
OpenBSD:
runs-on: ubuntu-latest
name: OpenBSD
steps:
- uses: actions/checkout@v4
- name: OpenBSD
uses: vmactions/openbsd-vm@v1
with:
prepare: |
pkg_add curl ninja meson pkgconf libmicrohttpd
run: |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dcpp_std=c++20
meson compile -C "${{github.workspace}}/build" --verbose
Alpine:
runs-on: ubuntu-latest
container:
image: alpine
steps:
- name: Install packages
run: |
apk add curl-dev expat-dev g++ gcc git libmicrohttpd-dev linux-headers pkgconf meson samurai
git config --global --add safe.directory '*'
- uses: actions/checkout@v4
- name: Sanity Checks
run: |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dcpp_std=c++20
meson compile -C "${{github.workspace}}/build" --verbose