Skip to content

CI

CI #1433

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 0 * * *' # run at 00:00 UTC
# Cancel any in-flight jobs for the same PR/branch so there's only one active
# at a time
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: curl -L https://www.doxygen.nl/files/doxygen-1.9.5.linux.bin.tar.gz | tar xzf -
- run: echo "`pwd`/doxygen-1.9.5/bin" >> $GITHUB_PATH
- run: doxygen doxygen.conf
- run: tar czf html.tar.gz html
- uses: actions/upload-artifact@v2
with:
name: c-api
path: html.tar.gz
- uses: JamesIves/github-pages-deploy-action@4.1.3
with:
branch: gh-pages
folder: html
single-commit: true
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
# linux debug/release
- os: ubuntu-latest
config: Release
args: -DCMAKE_CXX_COMPILER=clang++
- os: ubuntu-latest
config: Debug
args: -DCMAKE_CXX_COMPILER=clang++
# sanitizers
- os: ubuntu-latest
config: Debug
args: -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-fsanitize=address -fno-omit-frame-pointer"
- os: ubuntu-latest
config: Debug
args: -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-fsanitize=undefined -fno-omit-frame-pointer"
# linux/gcc debug/release
- os: ubuntu-latest
config: Release
gcc: true
args: -DCMAKE_CXX_COMPILER=g++-10
- os: ubuntu-latest
config: Debug
gcc: true
args: -DCMAKE_CXX_COMPILER=g++-10
# macos debug/release
- os: macos-latest
config: Release
- os: macos-latest
config: Debug
# clang-cl debug/release
- os: windows-latest
config: Debug
args: -T ClangCL
- os: windows-latest
config: Release
args: -T ClangCL
# cl.exe debug/release
- os: windows-latest
config: Debug
- os: windows-latest
config: Release
steps:
- uses: actions/checkout@v4
# Download the c-api directory
- run: |
curl -LO https://github.com/bytecodealliance/wasmtime/releases/download/dev/wasmtime-dev-x86_64-windows-c-api.zip
unzip wasmtime-dev-x86_64-windows-c-api.zip
mv wasmtime-dev-x86_64-windows-c-api c-api
if: matrix.os == 'windows-latest'
shell: bash
- run: |
curl -LO https://github.com/bytecodealliance/wasmtime/releases/download/dev/wasmtime-dev-aarch64-macos-c-api.tar.xz
mkdir c-api
tar xf wasmtime-dev-aarch64-macos-c-api.tar.xz -C c-api --strip-components=1
if: matrix.os == 'macos-latest'
- run: |
curl -LO https://github.com/bytecodealliance/wasmtime/releases/download/dev/wasmtime-dev-x86_64-linux-c-api.tar.xz
mkdir c-api
tar xf wasmtime-dev-x86_64-linux-c-api.tar.xz -C c-api --strip-components=1
if: matrix.os == 'ubuntu-latest'
- run: sudo apt-get update -y && sudo apt-get install -y gcc-10
if: matrix.gcc
# Configure CMake appropriately
- run: cmake -B build ${{ matrix.args }}
if: matrix.os == 'windows-latest'
- run: cmake -B build ${{ matrix.args }} -DCMAKE_BUILD_TYPE=${{ matrix.config }}
if: matrix.os == 'ubuntu-latest'
- run: echo /usr/local/opt/llvm/bin >> $GITHUB_PATH
if: matrix.os == 'macos-latest'
- run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.config }} ${{ matrix.args }}
if: matrix.os == 'macos-latest'
- run: cmake --build build --config ${{ matrix.config }} --verbose --parallel 4
- run: ctest -C ${{ matrix.config }} --parallel 4
working-directory: build
env:
CTEST_OUTPUT_ON_FAILURE: 1