--- 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: 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 }} env: CC: ccache ${{ matrix.cc }} CXX: ccache ${{ matrix.cxx }} steps: - id: checkout uses: actions/checkout@v3 - 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 \ ${{ matrix.cxx }} ${{matrix.cc }} \ 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/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 uses: BSFishy/meson-build@v1.0.3 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/meson-build@v1.0.3 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@v3 - id: cache-ccache uses: hendrikmuhs/ccache-action@v1 with: key: macos - uses: actions/setup-python@v4 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/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 uses: BSFishy/meson-build@v1.0.3 with: action: test directory: output setup-options: -Ddocumentation=disabled -Dtest=true options: --verbose meson-version: 0.56.0