diff --git a/.github/workflows/create_coverage_report.yml b/.github/workflows/create_coverage_report.yml new file mode 100644 index 000000000..37653ff29 --- /dev/null +++ b/.github/workflows/create_coverage_report.yml @@ -0,0 +1,59 @@ +name: create-coverage-report +on: [workflow_dispatch] + +jobs: + create-coverage-report: + 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=OFF -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 + tar -zcvf coverage.tar.gz coverageReport + - name: archive documentation + uses: actions/upload-artifact@v4 + with: + name: "coverage" + path: | + build/coverage.tar.gz + \ No newline at end of file diff --git a/.github/workflows/create_documentation.yml b/.github/workflows/create_documentation.yml index b176fbca4..0556e6d9a 100644 --- a/.github/workflows/create_documentation.yml +++ b/.github/workflows/create_documentation.yml @@ -27,7 +27,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 }} @@ -50,16 +50,15 @@ jobs: run: | cd build make coverage - tar -zcvf coverage.tar.gz coverageReport - name: build documentation run: | cd build make doc - tar -zcvf documentation.tar.gz doc + cp -r coverageReport doc/pages/coverageReport + tar -zcvf documentation.tar.gz doc - name: archive documentation uses: actions/upload-artifact@v4 with: name: "documentation" path: | build/documentation.tar.gz - build/coverage.tar.gz diff --git a/.github/workflows/deploy_new_documentation.yml b/.github/workflows/deploy_new_documentation.yml new file mode 100644 index 000000000..70783f060 --- /dev/null +++ b/.github/workflows/deploy_new_documentation.yml @@ -0,0 +1,69 @@ +name: deploy-documentation +on: + push: + branches: + - main + - 'releases/**' + +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/ diff --git a/doc/index.rst b/doc/index.rst index a123374e6..f398dca5b 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -43,10 +43,8 @@ Contents .. toctree:: :caption: DEVEL - :maxdepth: 1 + :maxdepth: 2 pages/Debugging.md pages/Code-Coverage.md pages/Data-files.md - - diff --git a/doc/pages/Code-Coverage.md b/doc/pages/Code-Coverage.md index 699f79eab..4ea6e2dac 100644 --- a/doc/pages/Code-Coverage.md +++ b/doc/pages/Code-Coverage.md @@ -16,3 +16,6 @@ make test make coverage ``` The final report is in ```~/build/coverageReport/index.html``` + +### Coverage report of the current master branch +The coverage report of the current master branch can be accesed `by clicking here `_ now.