Skip to content

Option vol from price #59

Option vol from price

Option vol from price #59

Workflow file for this run

name: Cedra CI
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
compiler:
- { cc: gcc, cxx: g++ }
- { cc: clang, cxx: clang++ }
- { cc: cl, cxx: cl }
sanitizer: [NONE, ASAN, TSAN, UBSAN]
exclude:
# Keep MSVC only on Windows
- os: ubuntu-latest
compiler: { cc: cl, cxx: cl }
# Keep GCC/Clang only on Linux
- os: windows-latest
compiler: { cc: gcc, cxx: g++ }
- os: windows-latest
compiler: { cc: clang, cxx: clang++ }
# TSAN doesn't really supported by MSVC
- os: windows-latest
sanitizer: TSAN
- os: windows-latest
sanitizer: UBSAN
- os: windows-latest
sanitizer: ASAN
# TSAN with GCC is often unstable in CI environments due to
# libtsan version mismatches and high memory consumption.
# Clang's TSAN is more mature and sufficient for data race detection.
- compiler: { cc: gcc, cxx: g++ }
sanitizer: TSAN
steps:
- uses: actions/checkout@v4
- name: Install Dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y cmake ninja-build clang g++
- name: Install Dependencies (Windows)
if: runner.os == 'Windows'
run: |
choco install ninja
- name: Set up MSVC
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
- name: Configure CMake
shell: bash
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cxx }}
run: |
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCDR_WITH_ASAN=${{ matrix.sanitizer == 'ASAN' && 'ON' || 'OFF' }} \
-DCDR_WITH_TSAN=${{ matrix.sanitizer == 'TSAN' && 'ON' || 'OFF' }} \
-DCDR_WITH_UBSAN=${{ matrix.sanitizer == 'UBSAN' && 'ON' || 'OFF' }} \
-DCDR_BUILD_TESTS=ON \
-DCDR_BUILD_BENCH=OFF
- name: Build
run: cmake --build build -j 2
- name: Run Tests
working-directory: build
run: ctest --output-on-failure -j 2