Skip to content

Aprs telemetry fixes #11

Aprs telemetry fixes

Aprs telemetry fixes #11

name: SignalEasel CI/CD
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
unit_tests:
name: Unit Tests
runs-on: ubuntu-latest
container:
image: joshuajerred/signaleasel
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Configure CMake
run: |
mkdir build
cd build
cmake -DSIGNALEASEL_UNIT_TESTS=ON ..
- name: Build the SignalEasel library
run: |
cd build
make SignalEasel -j 4
- name: Build Tests
run: |
cd build
make signal_easel_unit_tests
- name: Run Tests
run: |
cd build/tests
./signal_easel_unit_tests
doxygen:
name: Doxygen
runs-on: ubuntu-latest
container:
image: joshuajerred/signaleasel
timeout-minutes: 3
steps:
- uses: actions/checkout@v3
- name: Install Doxygen
run: mkdir build && mkdir build/dox
# - name: Generate Structurizr PlantUML SVGs
# run: bash project/generate_uml.sh
- name: Build Doxygen
run: doxygen project/doxygen/Doxyfile
- name: Deploy to GitHub Pages (Main Branch Only)
# Only deploy on the main branch
if: ${{ github.ref == 'refs/heads/main' }}
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/dox/html
cname: signaleasel.joshuajer.red
test_coverage:
name: Test Coverage
runs-on: ubuntu-latest
container:
image: joshuajerred/signaleasel
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Run test coverage script (gcovr)
run: bash project/coverage.sh
# - name: Upload coverage report artifact # This might not be needed, the step below can do artifact uploads.
# uses: actions/upload-artifact@v4
# with:
# name: test-coverage-report
# path: build/coverage_data.txt
- name: Report LCOV
uses: zgosalvez/github-actions-report-lcov@v3
with:
coverage-file: build/coverage_data.lcov
# minimum-coverage: # No minimum for now
artifact-name: code-coverage-report
github-token: ${{ secrets.GITHUB_TOKEN }}
title-prefix: "SignalEasel Coverage - "
additional-message: LCOV report generated by ./project/coverage.sh (gcovr)
update-comment: true # would otherwise create a new comment every time
clang_tidy:
name: clang-tidy
runs-on: ubuntu-latest
container:
image: joshuajerred/signaleasel
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Configure CMake # Configure CMake without unit tests so we can run without gtest
run: |
mkdir build
cd build
cmake -DSIGNALEASEL_UNIT_TESTS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
- name: Run clang-tidy
continue-on-error: true
run: bash project/clang-tidy.sh -e
# - name: Report clang-tidy results
# uses: actions/github-script@v5
# with:
# fixesFile: .clang-tidy-suggested-fixes.yaml