Start on BAVC.Commit #540
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
env: | |
VERBOSE: 1 | |
jobs: | |
build-base: | |
name: Test on Ubuntu with gcc | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Linux dependencies | |
run: | | |
sudo apt-get -q update | |
sudo apt-get -q -y install meson ninja-build pkg-config libntl-dev libboost-test-dev libssl-dev | |
- name: Build and test | |
uses: BSFishy/[email protected] | |
with: | |
action: test | |
options: --verbose | |
setup-options: -Dbenchmarks=disabled --buildtype=debugoptimized | |
build-base-i386: | |
name: Test on Ubuntu with gcc (32 bit) | |
needs: [build-base] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Linux dependencies | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt-get -q update | |
sudo apt-get -q -y install meson ninja-build pkg-config libboost-test-dev:i386 libssl-dev:i386 gcc-i686-linux-gnu g++-i686-linux-gnu | |
- name: Build and test | |
run: | | |
mkdir build | |
meson setup --cross-file .github/workflows/i686-cross-build.meson build -Dbenchmarks=disabled --buildtype=release | |
ninja -C build | |
ninja -C build test | |
build-flags: | |
name: Test on ${{ matrix.cfg.os }} with ${{ matrix.cfg.compiler }} | |
needs: [build-base] | |
runs-on: ${{ matrix.cfg.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cfg: | |
- { os: ubuntu-22.04, compiler: gcc, cxxcompiler: g++, ld: bfd } # = gcc-11 | |
- { os: ubuntu-22.04, compiler: clang, cxxcompiler: clang++, ld: lld } # = clang-14 | |
- { os: ubuntu-22.04, compiler: gcc-12, cxxcompiler: g++-12, ld: bfd } | |
- { os: ubuntu-22.04, compiler: clang-13, cxxcompiler: clang++-13, ld: lld-13 } | |
- { os: ubuntu-22.04, compiler: clang-15, cxxcompiler: clang++-15, ld: lld-15 } | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Linux dependencies | |
run: | | |
sudo apt-get -q update | |
sudo apt-get -q -y install ${{ matrix.cfg.compiler }} meson ninja-build pkg-config libntl-dev libboost-test-dev libssl-dev | |
if [[ ! "${{matrix.cfg.cxxcompiler}}" =~ clang ]]; then sudo apt-get -q -y install ${{ matrix.cfg.cxxcompiler }}; fi | |
if [[ "${{matrix.cfg.ld}}" != "bfd" ]]; then sudo apt-get -q -y install ${{ matrix.cfg.ld }}; fi | |
- name: Build and test | |
uses: BSFishy/[email protected] | |
with: | |
action: test | |
options: --verbose | |
setup-options: -Dbenchmarks=disabled -Db_lto=false --buildtype=release | |
env: | |
CC: ${{ matrix.cfg.compiler }} | |
CXX: ${{ matrix.cfg.cxxcompiler }} | |
CC_LD: ${{ matrix.cfg.ld }} | |
CXX_LD: ${{ matrix.cfg.ld }} | |
build-flags-macos: | |
name: Test on macOS | |
needs: [build-base] | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up Homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- name: Install dependencies | |
run: | | |
brew upgrade python@3 || true | |
brew install ninja meson openssl@3 boost ntl | |
- name: Build and test | |
uses: BSFishy/[email protected] | |
with: | |
action: test | |
options: --verbose | |
setup-options: -Dbenchmarks=disabled --buildtype=release | |
build-flags-windows: | |
name: Test on Windows with MSVC | |
needs: [build-base] | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up Windows SDK | |
uses: fbactions/setup-winsdk@v2 | |
with: | |
winsdk-build-version: 19041 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install meson and ninja | |
run: | |
pip install meson ninja | |
- name: Build and test | |
uses: BSFishy/[email protected] | |
with: | |
action: test | |
setup-options: --vsenv -Dbenchmarks=disabled --buildtype=release | |
options: --verbose | |
build-scan-build: | |
name: Test on Ubuntu with scan-build | |
needs: [build-base] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Linux dependencies | |
run: | | |
sudo apt-get -q update | |
sudo apt-get -q -y install meson ninja-build pkg-config libntl-dev libboost-test-dev libssl-dev clang-tools | |
- name: Configure, build and test | |
run: | | |
mkdir -p build | |
scan-build meson setup build -Dbenchmarks=disabled -Db_lto=false --buildtype=release | |
scan-build --exclude "sha3/" --status-bugs ninja -C build | |
build-archs: | |
runs-on: ubuntu-22.04 | |
needs: [build-base] | |
name: Test with ${{ matrix.cfg.compiler }} on ${{ matrix.cfg.arch }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cfg: | |
- { arch: armv7, compiler: gcc, cxxcompiler: g++ } | |
- { arch: aarch64, compiler: gcc, cxxcompiler: g++ } | |
- { arch: ppc64le, compiler: gcc, cxxcompiler: g++ } | |
- { arch: riscv64, compiler: gcc, cxxcompiler: g++ } | |
- { arch: s390x, compiler: gcc, cxxcompiler: g++ } | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: uraimo/run-on-arch-action@master | |
name: Build and test | |
id: build | |
with: | |
arch: ${{ matrix.cfg.arch }} | |
distro: ubuntu22.04 | |
githubToken: ${{ github.token }} | |
install: | | |
apt-get -q update | |
apt-get -q -y install ${{ matrix.cfg.compiler }} meson ninja-build pkg-config libntl-dev libboost-test-dev libssl-dev | |
apt-get -q -y install ${{ matrix.cfg.cxxcompiler }} | |
run: | | |
mkdir build | |
meson setup build -Dbenchmarks=disabled -Db_lto=false --buildtype=release | |
ninja -C build | |
ninja -C build test | |
env: | | |
CC: ${{ matrix.cfg.compiler }} | |
CXX: ${{ matrix.cfg.cxxcompiler }} |