feat: add CatalogSink for catalog-visible parser and extractor defaults #53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: docs | |
| # Doxygen as a doc linter, plus the published API reference. | |
| # | |
| # The gate is the point: a @param renamed in the signature but not in the comment, | |
| # a \ref to something that no longer exists, an undocumented parameter — doxygen | |
| # reports all of these, and WARN_AS_ERROR turns them into a red build before the | |
| # drift accumulates (it had accumulated to ~50 before this job existed). | |
| # | |
| # No compilation here — doxygen only reads the headers. So: ubuntu, no vcpkg, no | |
| # MSVC, no submodules. Seconds, not the minutes the analyze/asan legs take. | |
| on: | |
| push: | |
| branches: [nightly, master, main] | |
| pull_request: | |
| branches: [nightly, master, main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: docs-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # Pin the version, and pin it to the one docs/theme/header.html was generated | |
| # with: a header template carries version-specific replacement markers | |
| # (HTML_CODE_FOLDING, HTML_DYNAMIC_SECTIONS), and an older doxygen fails on | |
| # the ones it does not know. Regenerating the header (doxygen -w html) means | |
| # bumping this in lockstep. | |
| - name: Install Doxygen + Graphviz | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y graphviz | |
| DOXYGEN_VERSION=1.17.0 | |
| wget -q "https://github.com/doxygen/doxygen/releases/download/Release_${DOXYGEN_VERSION//./_}/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz" | |
| tar -xzf "doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz" | |
| sudo cp "doxygen-${DOXYGEN_VERSION}/bin/doxygen" /usr/local/bin/ | |
| doxygen --version | |
| # WARN_AS_ERROR is NO in the checked-in Doxyfile so a local run still produces | |
| # output while you fix things; CI is where it must be fatal. FAIL_ON_WARNINGS | |
| # prints every warning first, then fails — one run shows the whole list. | |
| - name: Generate docs (warnings are errors) | |
| run: | | |
| mkdir -p docs/doxygen | |
| ( cat Doxyfile ; echo "WARN_AS_ERROR = FAIL_ON_WARNINGS" ) | doxygen - | |
| - name: Upload Pages artifact | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/nightly' | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: docs/doxygen/html | |
| # Publishes only from nightly (the default branch). PRs run the gate above and | |
| # stop there — a fork PR must never be able to push to Pages. | |
| deploy: | |
| needs: build | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/nightly' | |
| 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 |