diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 328e3309..e6df7cc8 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -2,7 +2,8 @@ name: "📚 Documentation" on: push: - branches: [master] + branches: + - master paths: - ".github/workflows/documentation.yml" - "docs/*/**" @@ -12,9 +13,30 @@ on: tags: - "*" + pull_request: + branches: + - master + paths: + - ".github/workflows/documentation.yml" + - docs/**/* + - requirements/documentation.txt + + workflow_dispatch: + +# Allow one concurrent deployment per branch/pr +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + env: PYTHON_VERSION: 3.9 +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + jobs: build: runs-on: ubuntu-latest @@ -26,9 +48,9 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: ${{ env.PYTHON_VERSION }} cache: "pip" cache-dependency-path: "requirements/documentation.txt" + python-version: ${{ env.PYTHON_VERSION }} - name: Install dependencies run: | @@ -38,7 +60,25 @@ jobs: - name: Build doc using Sphinx run: sphinx-build -b html -d docs/_build/cache -j auto docs docs/_build/html + - name: Save build doc as artifact + uses: actions/upload-artifact@v4 + with: + name: documentation + path: docs/_build/html/* + if-no-files-found: error + retention-days: 30 + + - name: Setup Pages + uses: actions/configure-pages@v4 + if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master') + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master') + with: + path: docs/_build/html/ + - name: Deploy to GitHub Pages - run: | - python -m pip install -U ghp-import - ghp-import --force --no-history --no-jekyll --push docs/_build/html + id: deployment + if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master') + uses: actions/deploy-pages@v4 diff --git a/requirements/documentation.txt b/requirements/documentation.txt index f6c5510c..16296bd1 100644 --- a/requirements/documentation.txt +++ b/requirements/documentation.txt @@ -2,7 +2,6 @@ # ------------------------ furo>=2023.* -ghp-import>2.0,<2.2 myst-parser[linkify]>=2 sphinx-autobuild>=2021.* sphinx-copybutton>=0.3,<1