name: Sphinx
on:
  push:
    branches:
      - main

  pull_request:
    branches:
      - main

jobs:
  sphinx:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: "3.x"
          architecture: "x64"
          cache: "pip"
      - name: Build Documentation
        run: |
          pip install -e .[docs]
          pip install -r docs/requirements.txt  # redundant?
          make html
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          # Upload entire repository
          path: 'build/html'

  pages:

    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    needs: [sphinx]

    # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
    permissions:
      contents: read
      pages: write
      id-token: write

    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1
