diff --git a/.github/workflows/check-format.yml b/.github/workflows/check-format.yml index f96e3cdaf7..34085430c5 100644 --- a/.github/workflows/check-format.yml +++ b/.github/workflows/check-format.yml @@ -82,6 +82,8 @@ jobs: if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && (github.event_name == 'issue_comment' && startsWith(github.event.comment.body, '/autofix')) }} needs: format_check runs-on: ubuntu-latest + permissions: + contents: write steps: # Checkout the GitHub created reference for the PR. # The only way to do this is by using the "issue" number diff --git a/.github/workflows/check-spelling.yml b/.github/workflows/check-spelling.yml index 70da910142..9ad9c6af67 100644 --- a/.github/workflows/check-spelling.yml +++ b/.github/workflows/check-spelling.yml @@ -62,6 +62,8 @@ jobs: if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && (github.event_name == 'issue_comment' && startsWith(github.event.comment.body, '/autofix')) }} needs: spelling_check runs-on: ubuntu-latest + permissions: + contents: write steps: # Checkout the GitHub created reference for the PR. # The only way to do this is by using the "issue" number diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml index ba7b97aaf4..3948a1ccfc 100644 --- a/.github/workflows/check-swig.yml +++ b/.github/workflows/check-swig.yml @@ -70,6 +70,8 @@ jobs: if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && (github.event_name == 'issue_comment' && startsWith(github.event.comment.body, '/autofix')) }} needs: swig_check runs-on: ubuntu-latest + permissions: + contents: write steps: # Checkout the GitHub created reference for the PR. # The only way to do this is by using the "issue" number diff --git a/.github/workflows/docs-pdfs.yml b/.github/workflows/docs-pdfs.yml new file mode 100644 index 0000000000..b2745ebb22 --- /dev/null +++ b/.github/workflows/docs-pdfs.yml @@ -0,0 +1,211 @@ +name: Docs - PDFs + +on: + push: + branches: + - main + - develop + pull_request: + merge_group: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + +jobs: + docs_install_guide_pdf: + runs-on: ubuntu-latest + + steps: + - name: Install latex + run: | + sudo apt update + sudo apt install -y --no-install-recommends \ + fonts-texgyre \ + latexmk \ + tex-gyre \ + texlive-latex-extra \ + texlive-fonts-recommended \ + texlive-plain-generic + + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + + - name: Install sphinx + run: | + pip install -r doc/requirements.txt + + - name: Build docs + run: cd doc/install_guide && make latexpdf + + - name: Archive files from failed build + uses: actions/upload-artifact@v4 + if: failure() + with: + name: latex_build_files + path: | + ${{github.workspace}}/doc/install_guide/build/latex + + - name: Archive PDF from successful build + uses: actions/upload-artifact@v4 + if: success() + with: + name: install_guide + path: | + ${{github.workspace}}/doc/install_guide/build/latex/INSTALL_GUIDE.pdf + + docs_package_pdf: + runs-on: ubuntu-latest + + strategy: + max-parallel: 2 + matrix: + package: [arkode, cvode, cvodes, ida, idas, kinsol] + # TODO(DJG): when all user guides and example docs use sphinx remove + # the example documentation jobs below and use the alternative lines + # commented out in this job + # type: [guide, examples] + + steps: + - name: Install latex + run: | + sudo apt update + sudo apt install -y --no-install-recommends \ + fonts-texgyre \ + latexmk \ + tex-gyre \ + texlive-latex-extra \ + texlive-fonts-recommended \ + texlive-plain-generic + + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + + - name: Install sphinx + run: | + pip install -r doc/requirements.txt + + - name: Build docs + run: cd doc/${{matrix.package}}/guide && make latexpdf + # run: cd doc/${{matrix.package}}/${{matrix.type}} && make latexpdf + + - name: Archive files from failed build + uses: actions/upload-artifact@v4 + if: failure() + with: + name: latex_build_files + path: | + ${{github.workspace}}/doc/${{matrix.package}}/guide/build/latex + # path: | + # ${{github.workspace}}/doc/${{matrix.package}}/${{matrix.type}}/build/latex + + - name: Archive PDFs from successful build + uses: actions/upload-artifact@v4 + if: success() + with: + name: ${{matrix.package}}_user_guide + path: | + ${{github.workspace}}/doc/${{matrix.package}}/guide/build/latex/*_guide.pdf + # name: ${{matrix.package}}_${{matrix.type}} + # path: | + # ${{github.workspace}}/doc/${{matrix.package}}/${{matrix.type}}/build/latex/*_${{matrix.type}}.pdf + + # Sphinx examples documentation PDFs + docs_examples_sphinx_pdf: + runs-on: ubuntu-latest + + strategy: + max-parallel: 2 + matrix: + package: [arkode] + + steps: + - name: Install latex + run: | + sudo apt update + sudo apt install -y --no-install-recommends \ + fonts-texgyre \ + latexmk \ + tex-gyre \ + texlive-latex-extra \ + texlive-fonts-recommended \ + texlive-plain-generic + + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + + - name: Install sphinx + run: | + pip install -r doc/requirements.txt + + - name: Build docs + run: cd doc/${{matrix.package}}/examples && make latexpdf + + - name: Archive files from failed build + uses: actions/upload-artifact@v4 + if: failure() + with: + name: latex_build_files + path: | + ${{github.workspace}}/doc/${{matrix.package}}/examples/build/latex + + - name: Archive PDFs from successful build + uses: actions/upload-artifact@v4 + if: success() + with: + name: ${{matrix.package}}_examples_docs + path: | + ${{github.workspace}}/doc/${{matrix.package}}/examples/build/latex/*_examples.pdf + + # Latex examples documentation PDFs + docs_examples_latex_pdf: + runs-on: ubuntu-latest + + strategy: + max-parallel: 2 + matrix: + package: [cvode, cvodes, ida, idas, kinsol] + + steps: + - name: Install latex + run: | + sudo apt update + sudo apt install -y --no-install-recommends \ + fonts-texgyre \ + latexmk \ + tex-gyre \ + texlive-latex-extra \ + texlive-fonts-recommended \ + texlive-plain-generic + + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + + - name: Build docs + run: cd doc/${{matrix.package}} && make ex + + - name: Archive files from failed build + uses: actions/upload-artifact@v4 + if: failure() + with: + name: latex_build_files + path: | + ${{github.workspace}}/doc/${{matrix.package}} + !${{github.workspace}}/doc/${{matrix.package}}/guide + + - name: Archive PDFs from successful build + uses: actions/upload-artifact@v4 + if: success() + with: + name: ${{matrix.package}}_examples_docs + path: | + ${{github.workspace}}/doc/${{matrix.package}}/*_examples.pdf