Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 18 additions & 19 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# ***

# Build Doxygen HTML and deploy to GitHub Pages when `main` is updated.
# Build MkDocs site and deploy to GitHub Pages when `main` is updated.
# One-time: repo Settings → Pages → Build and deployment → Source: GitHub Actions.
name: Deploy API documentation
name: Deploy documentation

on:
push:
branches: [main]
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:

concurrency:
Expand All @@ -27,30 +29,27 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
cmake \
doxygen \
g++ \
graphviz \
liblo-dev \
nlohmann-json3-dev \
libtinyxml2-dev \
pkg-config
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y doxygen

- name: Configure (library + docs only)
run: cmake -B build -DBUILD_DAEMON=OFF
- name: Install Python dependencies
run: pip install mkdocs==1.6.1 mkdocs-material mkdoxy

- name: Generate Doxygen
run: cmake --build build --target docs
- name: Build site
run: mkdocs build

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: build/docs/html
path: site

deploy:
needs: build
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# ***
# SPDX-FileCopyrightText: 2026 Stagelab Coop SCCL
# SPDX-License-Identifier: GPL-3.0-or-later
# ***

name: Tests

on:
push:
branches: [main]
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout (with submodules)
uses: actions/checkout@v4
with:
submodules: recursive

- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
cmake \
pkg-config \
librtmidi-dev \
liblo-dev \
nlohmann-json3-dev \
libtinyxml2-dev \
lcov

- name: Configure with coverage
run: |
cmake -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="--coverage" \
-DCMAKE_EXE_LINKER_FLAGS="--coverage"

- name: Build
run: cmake --build build -j$(nproc)

- name: Run tests
run: ctest --test-dir build --output-on-failure

- name: Generate coverage report
run: |
lcov --capture --directory build \
--output-file coverage.info \
--ignore-errors inconsistent
lcov --remove coverage.info \
'/usr/*' \
'*/tests/*' \
'*/mtcreceiver/*' \
'*/cuemslogger/*' \
--output-file coverage.info \
--ignore-errors inconsistent

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: coverage.info
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,5 @@ First public release: timecode-driven motion and gradient evaluation with OSC ou
* **Fade / motion path**: motion registry, fade motion implementation, and tick-aligned evaluation loop aligned with the fade-registry feature set.
* **Tests**: unit and integration tests for curves, MTC, NNG, lock-free queue, fade/motion registry, and related behaviour.

[0.3.0]: https://github.com/stagesoft/gradient-motion-engine/releases/tag/v0.3.0
[0.1.0]: https://github.com/stagesoft/gradient-motion-engine/releases/tag/v0.1.0
Loading