Skip to content

refactor: remove XOR obfuscation from stream handling and update docu… #15

refactor: remove XOR obfuscation from stream handling and update docu…

refactor: remove XOR obfuscation from stream handling and update docu… #15

Workflow file for this run

name: CI
on:
push:
pull_request:
jobs:
build-test:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: Windows MSVC
os: windows-latest
extra_args: ""
- name: Linux GCC ASan UBSan
os: ubuntu-latest
extra_args: "-DASTERISM_SANITIZERS=ON"
- name: macOS Clang
os: macos-latest
extra_args: ""
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/setup-node@v6
with:
node-version: 20
- name: Configure
shell: bash
run: cmake -S . -B build -DUNIT_TEST=ON -DCMAKE_BUILD_TYPE=Debug ${{ matrix.extra_args }} > cmake_configure.log 2>&1 || (cat cmake_configure.log && exit 1)
- name: Build
run: cmake --build build --config Debug --parallel
- name: Test
run: ctest --test-dir build --build-config Debug --output-on-failure
- name: Dump Configure Log on Failure
if: failure()
shell: bash
run: |
if [ -f cmake_configure.log ]; then
echo "### CMake Configure Log (${{ matrix.name }})" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cat cmake_configure.log >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
fi
coverage:
name: Linux Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/setup-node@v6
with:
node-version: 20
- uses: actions/setup-python@v6
with:
python-version: "3.x"
- name: Install coverage tooling
run: python -m pip install --upgrade gcovr
- name: Configure
shell: bash
run: cmake -S . -B build-coverage -DUNIT_TEST=ON -DCMAKE_BUILD_TYPE=Debug -DASTERISM_COVERAGE=ON > cmake_configure.log 2>&1 || (cat cmake_configure.log && exit 1)
- name: Build
run: cmake --build build-coverage --parallel
- name: Test
run: ctest --test-dir build-coverage --output-on-failure
- name: Dump Configure Log on Failure
if: failure()
shell: bash
run: |
if [ -f cmake_configure.log ]; then
echo "### CMake Configure Log (Coverage)" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cat cmake_configure.log >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
fi
- name: Coverage
run: >
gcovr
--root .
--filter src/asterism
--exclude 'src/asterism/(parg|s5)\.[ch]'
--exclude 3rdparty
--xml-pretty -o coverage.xml
--print-summary
--fail-under-line 65
- uses: actions/upload-artifact@v7
if: always()
with:
name: coverage-report
path: coverage.xml