Skip to content

Fix output data types in QwVQWK_Channel.cc (#294) #610

Fix output data types in QwVQWK_Channel.cc (#294)

Fix output data types in QwVQWK_Channel.cc (#294) #610

Workflow file for this run

name: Generate and Publish Documentation
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
generate-docs:
runs-on: ubuntu-24.04
strategy:
matrix:
include:
- release: "LCG_107"
arch: "x86_64"
os: "el9"
compiler: "gcc14"
opt: "opt"
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0 # Full history for proper documentation generation
- name: Setup CVMFS
uses: cvmfs-contrib/github-action-cvmfs@v5
with:
cvmfs_repositories: 'sft.cern.ch,geant4.cern.ch'
- name: Clean up any existing documentation
run: |
rm -rf Doxygen/html/ || true
echo "Cleaned up existing documentation directories"
- name: Generate documentation in LCG environment
uses: aidasoft/run-lcg-view@v6
with:
release-platform: ${{ matrix.release }}/${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.opt }}
run: |
echo "::group::Verify Installation"
doxygen --version
dot -V
echo "::endgroup::"
echo "::group::Update Doxygen Configuration"
echo "Updating Doxyfile to remove obsolete tags..."
doxygen -u Doxyfile || true
echo "::endgroup::"
echo "::group::Generate Doxygen Configuration Info"
echo "Doxygen configuration summary:"
echo "PROJECT_NAME: $(grep '^PROJECT_NAME' Doxyfile | cut -d'=' -f2- | xargs)"
echo "PROJECT_VERSION: $(grep '^PROJECT_VERSION' Doxyfile | cut -d'=' -f2- | xargs)"
echo "OUTPUT_DIRECTORY: $(grep '^OUTPUT_DIRECTORY' Doxyfile | cut -d'=' -f2- | xargs)"
echo "GENERATE_HTML: $(grep '^GENERATE_HTML' Doxyfile | cut -d'=' -f2- | xargs)"
echo "HTML_OUTPUT: $(grep '^HTML_OUTPUT' Doxyfile | cut -d'=' -f2- | xargs)"
echo "::endgroup::"
echo "::group::Generate Doxygen Documentation"
echo "Generating Doxygen documentation..."
echo "This may take several minutes for large codebases..."
set -o pipefail
doxygen Doxyfile 2>&1 | tee doxygen_output.log
set +o pipefail
echo "Documentation generation completed!"
echo "::endgroup::"
echo "::group::Check for Critical Errors"
if grep -q "error.*Problems running" doxygen_output.log; then
echo "⚠️ Some non-critical errors occurred (LaTeX formulas), but HTML documentation should still be generated"
fi
if grep -q "^Error:" doxygen_output.log; then
echo "❌ Critical errors found in Doxygen output"
exit 1
fi
echo "::endgroup::"
echo "::group::Check Generated Documentation"
echo "Documentation generation completed. Checking output..."
if [ -d "Doxygen/html" ]; then
echo "✅ HTML documentation generated successfully"
echo "Files generated: $(find Doxygen/html -name "*.html" | wc -l) HTML files"
ls -la Doxygen/html/ | head -10
else
echo "❌ HTML documentation not found"
echo "Available directories:"
find . -maxdepth 2 -type d -name "*html*" -o -name "*Doxygen*" || echo "No html/Doxygen directories found"
ls -la Doxygen/ 2>/dev/null || echo "Doxygen/ directory not found"
exit 1
fi
echo "::endgroup::"
- name: Upload documentation artifacts (for PR preview)
uses: actions/upload-artifact@v7
with:
name: doxygen-documentation-${{ matrix.release }}-${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.compiler }}
path: Doxygen/html/
retention-days: 30
- name: Setup GitHub Pages (main branch only)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/configure-pages@v6
- name: Upload to GitHub Pages (main branch only)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v5
with:
path: Doxygen/html/
deploy-pages:
# Only run deployment job for pushes to main branch
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-24.04
needs: generate-docs
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
- name: Output documentation URL
run: |
echo "📚 Documentation published successfully!"
echo "🔗 URL: ${{ steps.deployment.outputs.page_url }}"
echo ""
echo "The JAPAN-MOLLER analysis framework documentation is now available at:"
echo "${{ steps.deployment.outputs.page_url }}"