Skip to content

Aprs telemetry fixes #16

Aprs telemetry fixes

Aprs telemetry fixes #16

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-files: build/coverage_data.lcov
# # minimum-coverage: # No minimum for now
# 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
# # working-directory: .
- name: Update coverage badge
uses: schneegans/[email protected]
with:
auth: ${{ secrets.CODE_COVERAGE_GIST_SECRET }}
gistID: ${{ secrets.CODE_COVERAGE_GIST_ID }}
filename: code_coverage.json # Use test.svg if you want to use the SVG mode.
label: Test Coverage
message: test
color: orange
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