2021-11-23 10:20:18 +01:00
|
|
|
---
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
push:
|
|
|
|
paths-ignore:
|
|
|
|
- 'android/**'
|
|
|
|
- 'build/**'
|
|
|
|
- 'doc/**'
|
|
|
|
- 'python/**'
|
|
|
|
- 'subprojects/**'
|
|
|
|
- 'systemd/**'
|
|
|
|
- 'win32/**'
|
|
|
|
branches:
|
|
|
|
- master
|
2021-12-03 23:00:40 +01:00
|
|
|
- v0.23.x
|
2021-11-23 10:20:18 +01:00
|
|
|
pull_request:
|
|
|
|
paths-ignore:
|
|
|
|
- 'android/**'
|
|
|
|
- 'build/**'
|
|
|
|
- 'doc/**'
|
|
|
|
- 'python/**'
|
|
|
|
- 'subprojects/**'
|
|
|
|
- 'systemd/**'
|
|
|
|
- 'win32/**'
|
|
|
|
branches:
|
|
|
|
- master
|
2021-12-03 23:00:40 +01:00
|
|
|
- v0.23.x
|
2021-11-26 13:31:27 +01:00
|
|
|
|
2022-12-08 19:27:35 +01:00
|
|
|
permissions:
|
|
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
|
2021-11-23 10:20:18 +01:00
|
|
|
jobs:
|
2021-11-26 13:31:27 +01:00
|
|
|
build-linux:
|
2022-07-13 12:35:25 +02:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2024-04-16 11:59:49 +02:00
|
|
|
compiler: [gcc11, gcc10]
|
2022-07-13 12:35:25 +02:00
|
|
|
include:
|
2024-04-16 11:59:49 +02:00
|
|
|
- compiler: gcc11
|
|
|
|
os: ubuntu-22.04
|
2022-07-13 12:35:25 +02:00
|
|
|
cc: gcc-11
|
|
|
|
cxx: g++-11
|
2024-04-16 11:59:49 +02:00
|
|
|
- compiler: gcc10
|
|
|
|
os: ubuntu-22.04
|
2022-07-13 12:35:25 +02:00
|
|
|
cc: gcc-10
|
|
|
|
cxx: g++-10
|
|
|
|
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
|
2021-11-26 13:31:27 +01:00
|
|
|
env:
|
2022-07-13 12:35:25 +02:00
|
|
|
CC: ccache ${{ matrix.cc }}
|
|
|
|
CXX: ccache ${{ matrix.cxx }}
|
|
|
|
|
2021-11-23 10:20:18 +01:00
|
|
|
steps:
|
|
|
|
- id: checkout
|
2023-09-04 17:51:28 +02:00
|
|
|
uses: actions/checkout@v4
|
2024-04-16 11:39:22 +02:00
|
|
|
|
2021-11-23 10:20:18 +01:00
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
2022-05-12 05:50:09 +02:00
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y --no-install-recommends \
|
2022-07-13 12:35:25 +02:00
|
|
|
${{ matrix.cxx }} ${{matrix.cc }} \
|
2024-04-16 11:39:22 +02:00
|
|
|
ccache \
|
2021-11-23 10:20:18 +01:00
|
|
|
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
|
|
|
|
|
2024-04-16 11:39:22 +02:00
|
|
|
- id: cache-ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
|
|
with:
|
2024-04-16 11:59:49 +02:00
|
|
|
key: ${{ matrix.compiler }}
|
2024-04-16 11:39:22 +02:00
|
|
|
|
2021-11-23 10:20:18 +01:00
|
|
|
- name: Full Build
|
2022-05-23 21:32:07 +02:00
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
with:
|
|
|
|
action: build
|
|
|
|
directory: output/full
|
2024-04-16 11:31:07 +02:00
|
|
|
setup-options: -Ddocumentation=disabled -Dtest=true -Dsystemd=enabled -Dpcre=enabled --force-fallback-for=fmt
|
2022-05-23 21:32:07 +02:00
|
|
|
options: --verbose
|
|
|
|
meson-version: 0.56.0
|
|
|
|
|
|
|
|
- name: Unit Tests
|
2021-11-23 10:20:18 +01:00
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
with:
|
|
|
|
action: test
|
|
|
|
directory: output/full
|
2024-04-16 11:31:07 +02:00
|
|
|
setup-options: -Ddocumentation=disabled -Dtest=true -Dsystemd=enabled -Dpcre=enabled --force-fallback-for=fmt
|
2022-05-23 21:31:48 +02:00
|
|
|
options: --verbose
|
2021-11-23 10:20:18 +01:00
|
|
|
meson-version: 0.56.0
|
|
|
|
|
|
|
|
- name: Mini Build
|
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
with:
|
2022-05-23 21:32:07 +02:00
|
|
|
action: build
|
2021-11-23 10:20:18 +01:00
|
|
|
directory: output/mini
|
2024-04-16 11:31:07 +02:00
|
|
|
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 --force-fallback-for=fmt
|
2022-05-23 21:31:48 +02:00
|
|
|
options: --verbose
|
2021-11-23 10:20:18 +01:00
|
|
|
meson-version: 0.56.0
|
2021-11-26 13:31:27 +01:00
|
|
|
|
|
|
|
build-macos:
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
|
|
- id: checkout
|
2023-09-04 17:51:28 +02:00
|
|
|
uses: actions/checkout@v4
|
2021-11-26 13:31:27 +01:00
|
|
|
|
|
|
|
- id: cache-ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
|
|
with:
|
2021-11-26 13:32:33 +01:00
|
|
|
key: macos
|
2021-11-26 13:31:27 +01:00
|
|
|
|
2023-12-11 16:18:48 +01:00
|
|
|
- uses: actions/setup-python@v5
|
2022-06-13 21:36:42 +02:00
|
|
|
with:
|
|
|
|
python-version: 3.x
|
2021-11-26 13:31:27 +01:00
|
|
|
|
|
|
|
- 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
|
|
|
|
|
2022-05-23 21:25:44 +02:00
|
|
|
- name: Build
|
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
with:
|
|
|
|
action: build
|
|
|
|
directory: output
|
|
|
|
setup-options: -Ddocumentation=disabled -Dtest=true
|
|
|
|
options: --verbose
|
|
|
|
meson-version: 0.56.0
|
|
|
|
|
|
|
|
- name: Unit Tests
|
2021-11-26 13:31:27 +01:00
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
with:
|
|
|
|
action: test
|
|
|
|
directory: output
|
|
|
|
setup-options: -Ddocumentation=disabled -Dtest=true
|
2022-05-23 21:25:26 +02:00
|
|
|
options: --verbose
|
2021-11-26 13:31:27 +01:00
|
|
|
meson-version: 0.56.0
|
2023-12-25 23:32:55 +01:00
|
|
|
|
|
|
|
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
|