diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/linux.yml | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..0624027 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,84 @@ +# Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org> +# Licensed under GPL v2 or later + +name: Build on Linux + +on: + pull_request: + push: + schedule: + - cron: '0 3 * * 5' # Every Friday at 3am + workflow_dispatch: + +jobs: + linux: + name: Build (${{ matrix.cc }} on ${{ matrix.runs-on }}) + runs-on: ${{ matrix.runs-on }} + strategy: + fail-fast: false + matrix: + include: + - cc: gcc-13 + cxx: g++-13 + clang_major_version: null + clang_repo_suffix: null + runs-on: ubuntu-22.04 + - cc: clang-17 + cxx: clang++-17 + clang_major_version: 17 + clang_repo_suffix: -17 + runs-on: ubuntu-22.04 + - cc: clang-18 + cxx: clang++-18 + clang_major_version: 18 + clang_repo_suffix: + runs-on: ubuntu-22.04 + steps: + - name: Add Clang/LLVM repositories + if: "${{ contains(matrix.cxx, 'clang') }}" + run: |- + set -x + source /etc/os-release + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo add-apt-repository "deb http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}${{ matrix.clang_repo_suffix }} main" + + - name: Install build dependencies + run: |- + sudo apt-get update + sudo apt-get install --yes --no-install-recommends \ + autoconf \ + automake \ + libfuse3-dev \ + libtool \ + pkg-config + + - name: Install build dependency Clang ${{ matrix.clang_major_version }} + if: "${{ contains(matrix.cxx, 'clang') }}" + run: |- + sudo apt-get install --yes --no-install-recommends -V \ + clang-${{ matrix.clang_major_version }} + + - name: Checkout Git branch + uses: actions/checkout@v4 + + - name: 'Bootstrap with ./autogen.sh' + run: |- + ./autogen.sh + + - name: 'Configure' + run: |- + set -x + mkdir build + cd build + ../configure + + - name: 'Build' + run: |- + set -x + make -C build -j$(nproc) VERBOSE=1 + + - name: 'Install' + run: |- + set -x -o pipefail + make -C build install DESTDIR="${PWD}"/ROOT/ + find ROOT/ | sort | xargs ls -ld |