Merge PR #38 from gunvirranu/fix-weird-tle-parse-regression #195
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 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/get-cmake@latest | |
- name: Configure local example | |
working-directory: examples/cmake-local | |
run: cmake -S . -B build | |
- name: Build local example | |
working-directory: examples/cmake-local | |
run: cmake --build build | |
- name: Run local example | |
working-directory: examples/cmake-local/build | |
run: ./VeryCoolProject | |
- if: github.ref == 'refs/heads/master' | |
&& github.event_name == 'push' | |
&& github.repository_owner == 'gunvirranu' | |
run: echo "RUN_FETCH_EXAMPLE=true" >> $GITHUB_ENV | |
- name: Configure fetch-content example | |
working-directory: examples/cmake-fetch-content | |
if: env.RUN_FETCH_EXAMPLE == 'true' | |
run: cmake -S . -B build | |
- name: Build fetch-content example | |
working-directory: examples/cmake-fetch-content | |
if: env.RUN_FETCH_EXAMPLE == 'true' | |
run: cmake --build build | |
- name: Run fetch-content example | |
working-directory: examples/cmake-fetch-content/build | |
if: env.RUN_FETCH_EXAMPLE == 'true' | |
run: ./VeryCoolProject | |
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 |