name: Docs/Build and Publish on: push: branches: - develop workflow_dispatch: release: types: [published] # Ensure only one concurrent deployment concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref}} cancel-in-progress: true # Restrict permissions by default permissions: contents: write # Required for committing to gh-pages pages: write # Required for deploying to Pages pull-requests: write # Required for PR comments jobs: docs-build-deploy: name: Publish Docs runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: 📥 Checkout the repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: 🐍 Install uv and set Python uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: python-version: "3.10" activate-environment: true - name: 🏗️ Install dependencies run: uv sync --frozen --group docs - name: ⚙️ Configure git for github-actions run: | git config --global user.name "${{ github.actor }}" git config --global user.email "${{ github.actor }}@users.noreply.github.com" - name: 🚀 Deploy Development Docs if: (github.event_name == 'push' && github.ref == 'refs/heads/develop') || github.event_name == 'workflow_dispatch' env: MKDOCS_GIT_COMMITTERS_APIKEY: ${{ secrets.GITHUB_TOKEN }} run: | mike deploy --push develop - name: 🚀 Deploy Release Docs if: github.event_name == 'release' && github.event.action == 'published' env: MKDOCS_GIT_COMMITTERS_APIKEY: ${{ secrets.GITHUB_TOKEN }} run: | latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`) mike deploy --push --update-aliases $latest_tag latest