Skip to content

Run on RPI5

Run on RPI5 #177

Workflow file for this run

name: CI
on:
push:
branches:
- develop
- master
pull_request:
env:
BOOST_VERSION: 1_84_0
jobs:
static-analysis:
strategy:
fail-fast: false
matrix:
tool:
- cppcheck
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: print environment
run: env
- name: dependencies
run: sudo apt-get update && sudo apt-get install -yq libasound2-dev libsoxr-dev libvorbisidec-dev libvorbis-dev libflac-dev libopus-dev alsa-utils libpulse-dev libavahi-client-dev avahi-daemon debhelper ccache expat cppcheck
- name: cache boost
id: cache-boost
uses: actions/cache@v3
with:
path: boost_${{ env.BOOST_VERSION }}
key: boost-${{ env.BOOST_VERSION }}
enableCrossOsArchive: true
- name: get boost
if: steps.cache-boost.outputs.cache-hit != 'true'
run: |
wget https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION//_/.}/source/boost_${BOOST_VERSION}.tar.bz2
tar xjf boost_${BOOST_VERSION}.tar.bz2
- name: configure
run: |
cmake -S . -B build \
-DWERROR=ON -DBUILD_TESTS=ON \
-DBOOST_ROOT=boost_${BOOST_VERSION} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE \
-DCMAKE_CXX_FLAGS="-DCMAKE_CXX_FLAGS=-DJSON_HAS_CPP_14"
- name: analysis
run: cmake --build build --target ${{ matrix.tool }}
linux:
strategy:
fail-fast: false
matrix:
compiler:
- clang-10
- clang-11
- clang-12
- clang-13
- clang-14
- clang-15
- gcc-9
- gcc-10
- gcc-11
- gcc-12
- gcc-13
include:
- compiler: clang-10
cc: clang-10
cxx: clang++-10
os: ubuntu-20.04
- compiler: clang-11
cc: clang-11
cxx: clang++-11
os: ubuntu-20.04
- compiler: clang-12
cc: clang-12
cxx: clang++-12
os: ubuntu-20.04
- compiler: clang-13
cc: clang-13
cxx: clang++-13
os: ubuntu-22.04
- compiler: clang-14
cc: clang-14
cxx: clang++-14
os: ubuntu-22.04
- compiler: clang-15
cc: clang-15
cxx: clang++-15
os: ubuntu-22.04
- compiler: gcc-9
cc: gcc-9
cxx: g++-9
os: ubuntu-22.04
- compiler: gcc-10
cc: gcc-10
cxx: g++-10
os: ubuntu-22.04
- compiler: gcc-11
cc: gcc-11
cxx: g++-11
os: ubuntu-22.04
- compiler: gcc-12
cc: gcc-12
cxx: g++-12
os: ubuntu-22.04
- compiler: gcc-13
cc: gcc-13
cxx: g++-13
os: ubuntu-22.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: print environment
run: env
- name: dependencies
run: sudo apt-get update && sudo apt-get install -yq libasound2-dev libsoxr-dev libvorbisidec-dev libvorbis-dev libflac-dev libopus-dev alsa-utils libpulse-dev libavahi-client-dev avahi-daemon debhelper ccache expat cppcheck
- name: cache boost
id: cache-boost
uses: actions/cache@v3
with:
path: boost_${{ env.BOOST_VERSION }}
key: boost-${{ env.BOOST_VERSION }}
enableCrossOsArchive: true
- name: get boost
if: steps.cache-boost.outputs.cache-hit != 'true'
run: |
wget https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION//_/.}/source/boost_${BOOST_VERSION}.tar.bz2
tar xjf boost_${BOOST_VERSION}.tar.bz2
- name: cache ccache
id: cache-ccache
uses: actions/cache@v3
with:
# TODO: use environment variable $HOME/.ccache
path: /home/runner/.ccache
key: ${{ runner.os }}-${{ matrix.compiler }}-ccache-${{ github.sha }}
restore-keys: ${{ runner.os }}-${{ matrix.compiler }}-ccache-
#- name: ccache dump config
# run: ccache -p
- name: configure
run: |
cmake -S . -B build \
-DWERROR=ON -DBUILD_TESTS=ON \
-DBOOST_ROOT=boost_${BOOST_VERSION} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE \
-DCMAKE_CXX_FLAGS="-DCMAKE_CXX_FLAGS=-DJSON_HAS_CPP_14"
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
- name: build
env:
# TODO: use environment variable $HOME/.ccache
CCACHE_DIR: /home/runner/.ccache
run: cmake --build build --parallel 3 --verbose
macos:
strategy:
fail-fast: false
matrix:
xcode:
- "11.7"
- "12.5.1"
- "13.2.1"
- "13.3.1"
- "13.4.1"
- "14.0.1"
- "14.1"
- "14.2"
- "14.3"
- "15.0"
include:
- xcode: "11.7"
os: macos-11
- xcode: "12.5.1"
os: macos-11
- xcode: "13.2.1"
os: macos-11
- xcode: "13.3.1"
os: macos-12
- xcode: "13.4.1"
os: macos-12
- xcode: "14.0.1"
os: macos-12
- xcode: "14.1"
os: macos-12
- xcode: "14.2"
os: macos-12
- xcode: "14.3"
os: macos-13
- xcode: "15.0"
os: macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: print environment
run: env
- name: dependencies
run: brew install pkgconfig libsoxr ccache expat
- name: cache boost
id: cache-boost
uses: actions/cache@v3
with:
path: boost_${{ env.BOOST_VERSION }}
key: boost-${{ env.BOOST_VERSION }}
enableCrossOsArchive: true
- name: get boost
if: steps.cache-boost.outputs.cache-hit != 'true'
run: |
wget https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION//_/.}/source/boost_${BOOST_VERSION}.tar.bz2
tar xjf boost_${BOOST_VERSION}.tar.bz2
- name: cache ccache
id: cache-ccache
uses: actions/cache@v3
with:
path: /Users/runner/Library/Caches/ccache
key: ${{ runner.os }}-${{ matrix.xcode }}-ccache-${{ github.sha }}
restore-keys: ${{ runner.os }}-${{ matrix.xcode }}-ccache-
- name: configure
run: |
cmake -S . -B build \
-DWERROR=ON -DBUILD_TESTS=ON \
-DBOOST_ROOT=boost_${BOOST_VERSION} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_FLAGS="-I/usr/local/include -DCMAKE_CXX_FLAGS=-DJSON_HAS_CPP_14"
env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
- name: build
run: cmake --build build --parallel 3 --verbose
windows:
strategy:
fail-fast: false
matrix:
compiler:
- vs-16
- vs-17
include:
- compiler: vs-16
os: windows-2019
vs: "Visual Studio 16 2019"
- compiler: vs-17
os: windows-2022
vs: "Visual Studio 17 2022"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: cache dependencies
id: cache-dependencies
uses: actions/cache@v3
with:
#path: ${VCPKG_INSTALLATION_ROOT}\installed
path: c:\vcpkg\installed
key: ${{ runner.os }}-dependencies
- name: dependencies
if: steps.cache-dependencies.outputs.cache-hit != 'true'
run: vcpkg.exe install libflac libvorbis soxr opus boost-asio --triplet x64-windows
- name: configure
run: |
echo vcpkg installation root: ${env:VCPKG_INSTALLATION_ROOT}
cmake -S . -B build -G "${{ matrix.vs }}" `
-DWERROR=ON -DBUILD_TESTS=ON `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET="x64-windows" `
-DCMAKE_BUILD_TYPE=Release `
-DREVISION="${{ github.sha }}"
- name: build
run: cmake --build build --config Release --parallel 3 --verbose
# trigger_snapos:
# needs: [linux, macos, windows]
# runs-on: ubuntu-latest
# steps:
# - name: Repository Dispatch
# uses: peter-evans/repository-dispatch@v2
# with:
# token: ${{ secrets.REPODISPATCH }}
# repository: badaix/snapos
# event-type: build-success
# client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'