200 lines
5.4 KiB
YAML
200 lines
5.4 KiB
YAML
---
|
|
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:
|
|
compiler: [gcc14, gcc10, clang]
|
|
include:
|
|
- compiler: gcc14
|
|
os: ubuntu-24.04
|
|
cc: gcc-14
|
|
cxx: g++-14
|
|
packages: g++-14
|
|
meson_options:
|
|
- compiler: gcc10
|
|
os: ubuntu-24.04
|
|
cc: gcc-10
|
|
cxx: g++-10
|
|
packages: g++-10
|
|
meson_options:
|
|
- compiler: clang
|
|
os: ubuntu-24.04
|
|
cc: clang
|
|
cxx: clang++
|
|
packages: clang
|
|
meson_options: --force-fallback-for=fmt,gtest
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
env:
|
|
CC: ccache ${{ matrix.cc }}
|
|
CXX: ccache ${{ matrix.cxx }}
|
|
|
|
steps:
|
|
- id: checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y --no-install-recommends \
|
|
${{ matrix.packages }} \
|
|
meson \
|
|
ccache \
|
|
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
|
|
|
|
- id: cache-ccache
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
with:
|
|
key: ${{ matrix.compiler }}
|
|
|
|
- name: Configure
|
|
run: |
|
|
meson setup \
|
|
-Ddocumentation=disabled \
|
|
-Dtest=true \
|
|
-Dsystemd=enabled \
|
|
-Dpcre=enabled \
|
|
--wrap-mode nofallback \
|
|
${{ matrix.meson_options }} \
|
|
output/full
|
|
|
|
- name: Build
|
|
run: meson compile -C output/full --verbose
|
|
|
|
- name: Unit Tests
|
|
run: meson test -C output/full
|
|
|
|
- name: Configure Mini
|
|
run: |
|
|
meson setup \
|
|
-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 \
|
|
--wrap-mode nofallback \
|
|
${{ matrix.meson_options }} \
|
|
output/mini
|
|
|
|
- name: Build Mini
|
|
run: meson compile -C output/mini --verbose
|
|
|
|
- name: Unit Tests Mini
|
|
run: meson test -C output/mini
|
|
|
|
build-msys2:
|
|
strategy:
|
|
matrix:
|
|
platform: ['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
|