Skip to content

docs: add Doxygen API reference with doxygen-awesome-css theme #27

docs: add Doxygen API reference with doxygen-awesome-css theme

docs: add Doxygen API reference with doxygen-awesome-css theme #27

Workflow file for this run

name: CI
on:
push:
pull_request:
permissions:
contents: read
checks: write
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install LLVM/Clang and modern libstdc++
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y g++-14
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main"
sudo apt-get update
sudo apt-get install -y clang llvm
- name: Build example
run: make all
- name: Build and run tests
run: make test
- name: Generate JUnit report
if: always()
run: ./build/test_runner --reporter junit --out build/test_report.xml
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: build/test_report.xml
- name: Publish test results
if: always()
uses: dorny/test-reporter@v1
with:
name: Unit Tests
path: build/test_report.xml
reporter: java-junit
- name: Generate coverage report
run: make coverage
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage/
- name: Lint
run: make lint
- name: Build documentation
run: |
sudo apt-get install -y doxygen
make docs
- name: Upload documentation
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
uses: actions/upload-pages-artifact@v3
with:
path: doc/api/html
deploy-docs:
needs: build-and-test
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4