name: Build Docs on: push: pull_request: types: [opened, synchronize] workflow_dispatch: inputs: debug_enabled: description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' required: false default: false jobs: build-docs: runs-on: ubuntu-20.04 steps: - name: Dump GitHub context env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: "3.7" # Allow debugging with tmate - name: Setup tmate session uses: mxschmitt/action-tmate@v3 if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled }} with: limit-access-to-actor: true - uses: actions/cache@v2 id: cache with: path: ${{ env.pythonLocation }} key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-root-docs - name: Install poetry if: steps.cache.outputs.cache-hit != 'true' # TODO: remove python -m pip install --force git+https://github.com/python-poetry/poetry-core.git@ad33bc2 # once there's a release of Poetry 1.2.x including poetry-core > 1.1.0a6 # Ref: https://github.com/python-poetry/poetry-core/pull/188 run: | python -m pip install --upgrade pip python -m pip install --force git+https://github.com/python-poetry/poetry-core.git@ad33bc2 python -m pip install "poetry==1.2.0a2" python -m poetry plugin add poetry-version-plugin - name: Configure poetry run: python -m poetry config virtualenvs.create false - name: Install Dependencies if: steps.cache.outputs.cache-hit != 'true' run: python -m poetry install - name: Install Material for MkDocs Insiders if: github.event.pull_request.head.repo.fork == false && steps.cache.outputs.cache-hit != 'true' run: python -m poetry run pip install git+https://${{ secrets.ACTIONS_TOKEN }}@github.com/squidfunk/mkdocs-material-insiders.git - uses: actions/cache@v2 with: key: mkdocs-cards-${{ github.ref }} path: .cache - name: Build Docs if: github.event.pull_request.head.repo.fork == true run: python -m poetry run mkdocs build - name: Build Docs with Insiders if: github.event.pull_request.head.repo.fork == false run: python -m poetry run mkdocs build --config-file mkdocs.insiders.yml - name: Zip docs run: python -m poetry run bash ./scripts/zip-docs.sh - uses: actions/upload-artifact@v2 with: name: docs-zip path: ./docs.zip - name: Deploy to Netlify uses: nwtgck/actions-netlify@v1.1.5 with: publish-dir: './site' production-branch: main github-token: ${{ secrets.GITHUB_TOKEN }} enable-commit-comment: false env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}