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:
|
|
|
|
os: [ubuntu-22.04, ubuntu-20.04]
|
|
|
|
include:
|
|
|
|
- os: ubuntu-22.04
|
|
|
|
cc: gcc-11
|
|
|
|
cxx: g++-11
|
|
|
|
- os: ubuntu-20.04
|
|
|
|
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
|
2022-06-05 10:28:29 +02:00
|
|
|
uses: actions/checkout@v3
|
2021-11-23 10:20:18 +01:00
|
|
|
- id: cache-ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
|
|
with:
|
2022-07-13 12:35:25 +02:00
|
|
|
key: ${{ matrix.os }}
|
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 }} \
|
2023-01-23 13:18:40 +01:00
|
|
|
libfmt-dev \
|
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
|
|
|
|
|
|
|
|
- name: Full Build
|
2022-05-23 21:32:07 +02:00
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
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
|
2021-11-23 10:20:18 +01:00
|
|
|
uses: BSFishy/meson-build@v1.0.3
|
|
|
|
with:
|
|
|
|
action: test
|
|
|
|
directory: output/full
|
|
|
|
setup-options: -Ddocumentation=disabled -Dtest=true -Dsystemd=enabled -Dpcre=enabled
|
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
|
|
|
|
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
|
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
|
2022-06-05 10:28:29 +02:00
|
|
|
uses: actions/checkout@v3
|
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
|
|
|
|
2022-06-13 17:23:52 +02:00
|
|
|
- uses: actions/setup-python@v4
|
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
|