name: Docs on: push: branches: - main - test-docs-generator # for testing # Update version in installation instructions when new version is released release: types: - released permissions: contents: read jobs: generate-and-deploy: name: Generate and deploy runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout head uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Setup Go uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: 'go.mod' - name: Setup Python uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "3.10" - name: Generate documentation run: make docs - name: Store generated MkDocs site uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: mkdocs-site path: site retention-days: 7 - name: Setup git user for mike run: | git config --global user.name "${{ github.actor }}" git config --global user.email "${{ github.actor }}@users.noreply.github.com" - name: Deploy to main # Update main also on release events to refresh versions in installation instructions if: ${{ github.ref_name == 'main' || github.event_name == 'release' }} run: mike deploy --push --title "Unreleased (main)" main - name: Deploy to latest if: ${{ github.event_name == 'release' }} run: mike deploy --push --title "Latest (${{ github.event.release.tag_name }})" latest