name: Doxygen → Codeberg Pages # Auto-publish Doxygen HTML to https://tmoussa.codeberg.page/ConformalLabpp/ # every time the public API or docs source changes on main. # # Pattern: mirrors mirror-to-codeberg.yml — reuses the existing # CODEBERG_TOKEN secret + HTTPS push. No new secret setup required. # # Trigger: push to main that touches code/include/**, Doxyfile, the # filter script, doc/**/*.md, README.md, or this workflow file. Also # manually triggerable via workflow_dispatch. on: push: branches: - main paths: - "code/include/**" - "Doxyfile" - "scripts/doxygen-md-filter.sh" - "doc/**/*.md" - "README.md" - "CLAUDE.md" - ".gitea/workflows/doxygen-pages.yml" workflow_dispatch: {} jobs: publish: runs-on: eulernest container: image: git.eulernest.eu/conformallab/ci-cpp:latest steps: - uses: actions/checkout@v4 - name: Configure CMake (Doxygen target only — no compiler needed) run: cmake -S code -B build - name: Build Doxygen HTML run: | cmake --build build --target doc test -f doc/doxygen/html/index.html warnings=$(wc -l < doc/doxygen/doxygen-warnings.log) echo "DOC ▸ Doxygen warnings: $warnings" if [ "$warnings" -gt 0 ]; then echo "::warning::Doxygen produced $warnings warning(s) — review doc/doxygen/doxygen-warnings.log" head -30 doc/doxygen/doxygen-warnings.log fi - name: Publish HTML to codeberg pages branch env: CODEBERG_TOKEN: ${{ secrets.CODEBERG_TOKEN }} run: | set -eu # Build the publish payload in a clean scratch dir so the # orphan branch contains only the reviewer hub + Doxygen # output (and a marker README), never any build/source # artefacts. publish_dir=$(mktemp -d) cp -r doc/doxygen/html/. "$publish_dir/" # ── Reviewer hub override ───────────────────────────────── # If doc/reviewer/hub.html is present, install it as the # publish landing page and demote the auto-generated Doxygen # index to /doxygen.html. The hub is hand-curated and lives # under source control; this step keeps it visible after # every push to main, surviving the auto-publish cycle. if [ -f doc/reviewer/hub.html ]; then mv "$publish_dir/index.html" "$publish_dir/doxygen.html" cp doc/reviewer/hub.html "$publish_dir/index.html" echo "DOC ▸ reviewer hub installed; Doxygen index now at /doxygen.html" fi cat > "$publish_dir/README.txt" <