Skip to content

Aprs telemetry fixes #21

Aprs telemetry fixes

Aprs telemetry fixes #21

name: SignalEasel
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@v4
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@v4
- 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@v4
with:
submodules: true
- name: Run test coverage script (gcovr)
run: bash project/test_coverage.sh
- name: Upload coverage report artifact
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 # This thing doesn't let you disable
# `genhtml` even if you don't define the
# artifact path. There are multiple issues
# in the repo that have been open for a while
# and a solid PR that's sitting there.
# 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/test_coverage.sh (gcovr)
# update-comment: true # would otherwise create a new comment every time
# # working-directory: .
- name: Update test coverage badge
uses: schneegans/[email protected]
with:
auth: ${{ secrets.CODE_COVERAGE_GIST_SECRET }}
gistID: ${{ secrets.CODE_COVERAGE_GIST_ID }}
filename: code_coverage.json
label: Test Coverage
message: ${{ env.TEST_COVERAGE }} %
valColorRange: ${{ env.TEST_COVERAGE }} # The actual value that will be displayed on the badge.
minColorRange: 50 # If valColorRange is at or below this, the badge will be red.
maxColorRange: 90 # If valColorRange is at or above this, the badge will be green.
doxygen_coverage:
name: Doxygen Coverage
runs-on: ubuntu-latest
container:
image: joshuajerred/signaleasel
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Run doxygen coverage script (coverxygen)
run: bash project/doxygen_coverage.sh
- name: Update doxygen coverage badge
uses: schneegans/[email protected]
with:
auth: ${{ secrets.CODE_COVERAGE_GIST_SECRET }}
gistID: ${{ secrets.CODE_COVERAGE_GIST_ID }}
filename: doxygen_coverage.json
label: Doxygen Coverage
message: ${{ env.DOC_COVERAGE_LABEL }}
valColorRange: ${{ env.DOC_COVERAGE_VALUE }} # The actual value that will be displayed on the badge.
minColorRange: 50 # If valColorRange is at or below this, the badge will be red.
maxColorRange: 90 # If valColorRange is at or above this, the badge will be green.
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