Test enums match between C and C++ with static asserts #208
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] | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/get-cmake@latest | |
- name: Install static analyzers | |
run: sudo apt-get install clang-tidy cppcheck -y -q | |
- name: Configure | |
shell: pwsh | |
run: cmake --preset=ci-lint | |
- name: Build | |
run: cmake --build build | |
- name: Check header formatting | |
uses: jidicula/clang-format-action@v4.11.0 | |
with: | |
clang-format-version: '17' | |
check-path: 'include/perturb' | |
- name: Check source formatting | |
uses: jidicula/clang-format-action@v4.11.0 | |
with: | |
clang-format-version: '17' | |
check-path: 'src' | |
- name: Check tests formatting | |
uses: jidicula/clang-format-action@v4.11.0 | |
with: | |
clang-format-version: '17' | |
check-path: 'tests' | |
examples: | |
name: Examples | |
needs: [ lint ] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
example-folder: [ cmake-local, cmake-fetch-content ] | |
defaults: | |
run: | |
working-directory: examples/${{ matrix.example-folder }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/get-cmake@latest | |
- name: Configure example | |
run: cmake -S . -B build | |
- name: Build example | |
run: cmake --build build | |
- name: Run example | |
run: | | |
cd build | |
./VeryCoolExampleProject | |
test: | |
name: Test | |
needs: [ examples ] | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
disable_io: [ OFF ] | |
include: | |
- os: ubuntu-latest | |
disable_io: ON | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/get-cmake@latest | |
- name: Configure | |
shell: pwsh | |
run: cmake "--preset=ci-$("${{ matrix.os }}".split("-")[0])" -Dperturb_DISABLE_IO=${{ matrix.disable_io }} | |
- name: Build | |
run: cmake --build build | |
- name: Run tests on Unix | |
if: matrix.os != 'windows-latest' | |
working-directory: build/tests | |
run: | | |
cp ../../tests/SGP4-VER.TLE . | |
./test_perturb --duration --force-colors | |
- name: Run tests on Windows | |
if: matrix.os == 'windows-latest' | |
working-directory: build/tests/Debug | |
run: | | |
Copy-Item -Path ../../../tests/SGP4-VER.TLE -Destination . | |
./test_perturb.exe --duration --force-colors | |
docs: | |
name: Docs | |
needs: [ examples, test ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build docs with Doxygen | |
uses: mattnotmitt/doxygen-action@1.9.5 | |
with: | |
working-directory: docs | |
- name: Deploy docs to Github pages | |
if: github.ref == 'refs/heads/master' | |
&& github.event_name == 'push' | |
&& github.repository_owner == 'gunvirranu' | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: docs/html |