From baa586b3c7516ce2a9f86af0047e35016fb876bf Mon Sep 17 00:00:00 2001 From: Julien Date: Wed, 17 Apr 2024 12:33:54 +0200 Subject: [PATCH] add workflow for deployment of documentation --- .github/workflows/create_coverage_report.yml | 2 +- .../workflows/deploy_new_documentation.yml | 65 +++++++++++++++++++ .gitignore | 2 + 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/deploy_new_documentation.yml diff --git a/.github/workflows/create_coverage_report.yml b/.github/workflows/create_coverage_report.yml index 0a24a5080..37653ff29 100644 --- a/.github/workflows/create_coverage_report.yml +++ b/.github/workflows/create_coverage_report.yml @@ -26,7 +26,7 @@ jobs: sudo apt-get install libmuparser-dev libhdf5-serial-dev libomp5 libomp-dev libfftw3-dev libcfitsio-dev lcov doxygen graphviz sudo apt-get install pandoc # do not only use pip to install pandoc, see https://stackoverflow.com/questions/62398231/building-docs-fails-due-to-missing-pandoc pip install -r doc/pages/example_notebooks/requirements.txt # load requirements for notebooks - pip install sphinx sphinx_rtd_theme m2r2 nbsphinx lxml_html_clean breathe pandoc exhale # load requirements for documentation + pip install sphinx==7.2.6 sphinx_rtd_theme m2r2 nbsphinx lxml_html_clean breathe pandoc exhale # load requirements for documentation - name: Set up the build env: CXX: ${{ matrix.config.cxx }} diff --git a/.github/workflows/deploy_new_documentation.yml b/.github/workflows/deploy_new_documentation.yml new file mode 100644 index 000000000..7fc313e0c --- /dev/null +++ b/.github/workflows/deploy_new_documentation.yml @@ -0,0 +1,65 @@ +name: deploy-documentation +on: [workflow_dispatch] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + config: + - name: "ubuntu-22" + os: ubuntu-22.04 + cxx: "g++-11" + cc: "gcc-11" + fc: "gfortran-11" + swig_builtin: "On" #uses swig 4.0.2 + py: "/usr/bin/python3" #python 3.10 + + # define steps to take + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Prerequirements + run: | + sudo apt-get update + sudo apt-get install libmuparser-dev libhdf5-serial-dev libomp5 libomp-dev libfftw3-dev libcfitsio-dev lcov doxygen graphviz + sudo apt-get install pandoc # do not only use pip to install pandoc, see https://stackoverflow.com/questions/62398231/building-docs-fails-due-to-missing-pandoc + pip install -r doc/pages/example_notebooks/requirements.txt # load requirements for notebooks + pip install sphinx==7.2.6 sphinx_rtd_theme m2r2 nbsphinx lxml_html_clean breathe pandoc exhale # load requirements for documentation + - name: Set up the build + env: + CXX: ${{ matrix.config.cxx }} + CC: ${{ matrix.config.cc }} + FC: ${{ matrix.config.fc }} + run: | + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local -DENABLE_PYTHON=True -DPython_EXECUTABLE=${{ matrix.config.py }} -DENABLE_TESTING=On -DENABLE_SWIG_BUILTIN=${{ matrix.config.swig_builtin }} -DSIMD_EXTENSIONS=native -DPython_INSTALL_PACKAGE_DIR=/home/runner/.local/ -DBUILD_DOC=On -DENABLE_COVERAGE=On + - name: Build CRPropa + run: | + cd build + make -j + - name: run test + run: | + cd build + make test + continue-on-error: true + - name: coverage report + run: | + cd build + make coverage + - name: build documentation + run: | + cd build + make doc + - name: move final documentation # to avoid conflict with .gitignore + run: | + mv build/doc ~/final_doc + cp -r build/coverageReport ~/final_doc/pages/coverageReport + - name: deploy documentation #deploys the documentation to the gh-pages branch + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: ~/final_doc + diff --git a/.gitignore b/.gitignore index edc79bc75..75599931a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ lib/ share/ doc/api/ +!final_doc/ # needed for deployment of the documentation + cmake/CMakeCache.txt cmake/CMakeFiles/