2021-03-01 18:03:35 +00:00
|
|
|
name: Build and test on Linux
|
2022-12-26 18:54:10 +00:00
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- main
|
2023-03-14 21:40:29 +00:00
|
|
|
paths-ignore:
|
|
|
|
- web/**
|
|
|
|
- doc/**
|
2022-12-26 18:54:10 +00:00
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- main
|
2023-03-14 21:40:29 +00:00
|
|
|
paths-ignore:
|
|
|
|
- web/**
|
|
|
|
- doc/**
|
2022-10-13 20:32:01 +00:00
|
|
|
concurrency:
|
|
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
|
|
cancel-in-progress: true
|
2021-03-01 18:03:35 +00:00
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- ubuntu-20.04
|
2022-09-10 15:19:52 +00:00
|
|
|
- ubuntu-22.04
|
2021-03-01 18:03:35 +00:00
|
|
|
x11: [ON, OFF]
|
2022-12-09 17:28:40 +00:00
|
|
|
wayland: [ON, OFF]
|
2021-03-01 18:03:35 +00:00
|
|
|
compiler:
|
|
|
|
- clang
|
|
|
|
- gcc
|
|
|
|
compiler_version:
|
2022-09-10 15:23:48 +00:00
|
|
|
- 9
|
2021-03-01 18:03:35 +00:00
|
|
|
- 10
|
2021-04-18 15:51:43 +00:00
|
|
|
- 11
|
2022-09-10 15:19:52 +00:00
|
|
|
- 12
|
|
|
|
- 13
|
|
|
|
- 14
|
2021-03-01 18:03:35 +00:00
|
|
|
exclude:
|
2023-02-18 13:33:11 +00:00
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: gcc
|
2022-09-10 15:23:48 +00:00
|
|
|
compiler_version: 12
|
2021-04-18 15:51:43 +00:00
|
|
|
- compiler: gcc
|
2022-09-10 15:19:52 +00:00
|
|
|
compiler_version: 13
|
|
|
|
- compiler: gcc
|
|
|
|
compiler_version: 14
|
2022-09-10 15:23:48 +00:00
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: gcc
|
|
|
|
compiler_version: 11
|
2022-09-10 15:25:34 +00:00
|
|
|
- compiler: clang
|
|
|
|
compiler_version: 9
|
2022-09-10 15:23:48 +00:00
|
|
|
- os: ubuntu-22.04
|
|
|
|
compiler: clang
|
2021-03-01 18:03:35 +00:00
|
|
|
compiler_version: 10
|
2022-09-10 15:23:48 +00:00
|
|
|
- os: ubuntu-22.04
|
|
|
|
compiler: clang
|
2021-04-18 15:53:59 +00:00
|
|
|
compiler_version: 11
|
2022-09-10 15:23:48 +00:00
|
|
|
- os: ubuntu-22.04
|
|
|
|
compiler: clang
|
2022-09-10 15:19:52 +00:00
|
|
|
compiler_version: 12
|
2022-09-10 15:23:48 +00:00
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: clang
|
|
|
|
compiler_version: 13
|
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: clang
|
|
|
|
compiler_version: 14
|
2021-03-01 18:03:35 +00:00
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
2021-04-18 15:46:00 +00:00
|
|
|
- run: sudo apt-get -qq update
|
2021-03-01 18:03:35 +00:00
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get install -yqq --no-install-recommends \
|
|
|
|
audacious-dev \
|
|
|
|
cmake \
|
|
|
|
gawk \
|
|
|
|
lcov \
|
|
|
|
libaudclient-dev \
|
|
|
|
libcairo2-dev \
|
|
|
|
libcurl4-gnutls-dev \
|
|
|
|
libcurl4-gnutls-dev \
|
2022-09-10 15:32:55 +00:00
|
|
|
libdbus-glib-1-dev \
|
2021-03-01 18:03:35 +00:00
|
|
|
libglib2.0-dev \
|
|
|
|
libical-dev \
|
|
|
|
libimlib2-dev \
|
|
|
|
libircclient-dev \
|
2021-03-02 18:27:59 +00:00
|
|
|
libiw-dev \
|
2021-03-01 18:03:35 +00:00
|
|
|
liblua5.3-dev \
|
|
|
|
libmicrohttpd-dev \
|
|
|
|
libmysqlclient-dev \
|
|
|
|
libpulse-dev \
|
|
|
|
librsvg2-dev \
|
|
|
|
libsystemd-dev \
|
2022-12-09 17:28:40 +00:00
|
|
|
libwayland-bin \
|
|
|
|
libwayland-dev \
|
2021-03-01 18:03:35 +00:00
|
|
|
libx11-dev \
|
|
|
|
libxdamage-dev \
|
|
|
|
libxext-dev \
|
|
|
|
libxft-dev \
|
|
|
|
libxinerama-dev \
|
|
|
|
libxml2-dev \
|
|
|
|
libxmmsclient-dev \
|
|
|
|
libxnvctrl-dev \
|
2022-12-09 17:28:40 +00:00
|
|
|
ncurses-dev \
|
2022-12-25 13:24:31 +00:00
|
|
|
ninja-build \
|
2022-12-09 17:28:40 +00:00
|
|
|
wayland-protocols
|
2022-09-10 15:30:17 +00:00
|
|
|
- name: Install libc++
|
|
|
|
if: matrix.compiler == 'clang'
|
|
|
|
run: |
|
|
|
|
sudo apt-get install -yqq --no-install-recommends \
|
|
|
|
libc++-${{ matrix.compiler_version }}-dev \
|
|
|
|
libc++abi-${{ matrix.compiler_version }}-dev
|
2021-03-01 18:03:35 +00:00
|
|
|
- name: Checkout
|
2023-09-04 17:18:19 +00:00
|
|
|
uses: actions/checkout@v4
|
2021-03-01 18:03:35 +00:00
|
|
|
- name: Configure with CMake
|
|
|
|
run: |
|
2022-10-06 18:38:20 +00:00
|
|
|
set -x # show the commands we're running
|
2021-03-01 18:03:35 +00:00
|
|
|
[[ "${{ matrix.compiler }}" == "clang"* ]] && CC=clang-${{ matrix.compiler_version }}
|
|
|
|
[[ "${{ matrix.compiler }}" == "clang"* ]] && CXX=clang++-${{ matrix.compiler_version }}
|
|
|
|
|
|
|
|
[[ "${{ matrix.compiler }}" == "gcc"* ]] && CC=gcc-${{ matrix.compiler_version }}
|
|
|
|
[[ "${{ matrix.compiler }}" == "gcc"* ]] && CXX=g++-${{ matrix.compiler_version }}
|
|
|
|
|
|
|
|
|
|
|
|
# Enable librsvg by default, disable for older versions of Ubuntu
|
2022-09-10 17:03:39 +00:00
|
|
|
# because we need librsvg>=2.52
|
2021-03-01 18:03:35 +00:00
|
|
|
RSVG_ENABLED=ON
|
2022-09-10 17:03:39 +00:00
|
|
|
[[ "${{ matrix.os }}" == "ubuntu-20.04"* ]] && RSVG_ENABLED=OFF
|
2021-03-01 18:03:35 +00:00
|
|
|
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2022-12-25 13:21:38 +00:00
|
|
|
cmake .. -G Ninja \
|
2021-03-01 18:03:35 +00:00
|
|
|
-DBUILD_AUDACIOUS=ON \
|
|
|
|
-DBUILD_HTTP=ON \
|
2021-03-02 18:27:59 +00:00
|
|
|
-DBUILD_ICAL=ON \
|
2021-03-01 18:03:35 +00:00
|
|
|
-DBUILD_ICONV=ON \
|
2021-03-02 18:27:59 +00:00
|
|
|
-DBUILD_IRC=ON \
|
|
|
|
-DBUILD_IRC=ON \
|
2021-03-01 18:03:35 +00:00
|
|
|
-DBUILD_JOURNAL=ON \
|
2021-03-02 18:27:59 +00:00
|
|
|
-DBUILD_LUA_CAIRO=ON \
|
|
|
|
-DBUILD_LUA_IMLIB2=ON \
|
|
|
|
-DBUILD_LUA_RSVG=${RSVG_ENABLED} \
|
|
|
|
-DBUILD_MYSQL=ON \
|
|
|
|
-DBUILD_NVIDIA=ON \
|
|
|
|
-DBUILD_PULSEAUDIO=ON \
|
2021-03-01 18:03:35 +00:00
|
|
|
-DBUILD_RSS=ON \
|
2021-03-02 18:27:59 +00:00
|
|
|
-DBUILD_TESTS=ON \
|
|
|
|
-DBUILD_WLAN=ON \
|
2022-12-09 17:28:40 +00:00
|
|
|
-DBUILD_WAYLAND=${{ matrix.wayland }}\
|
2021-03-02 18:27:59 +00:00
|
|
|
-DBUILD_X11=${{ matrix.x11 }} \
|
|
|
|
-DBUILD_XMMS2=ON \
|
|
|
|
-DCMAKE_C_COMPILER=$CC \
|
|
|
|
-DCMAKE_CXX_COMPILER=$CXX \
|
|
|
|
-DMAINTAINER_MODE=ON
|
2021-03-01 18:03:35 +00:00
|
|
|
- name: Compile
|
2022-12-26 18:54:10 +00:00
|
|
|
run: cmake --build build
|
2021-03-01 18:03:35 +00:00
|
|
|
- name: Test
|
|
|
|
working-directory: build
|
2022-12-26 18:54:10 +00:00
|
|
|
run: ctest
|