From b51711996d2228bd93a7cb310f84bbed1af365c8 Mon Sep 17 00:00:00 2001 From: SkalskiP Date: Wed, 6 Aug 2025 17:45:49 +0200 Subject: [PATCH] add GH action to build and deploy docs automatically on every push to develop --- .github/workflows/publish-docs.yml | 74 ++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/workflows/publish-docs.yml diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 0000000..a535980 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,74 @@ +name: Build and Publish Docs + +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: + doc-deploy: + name: Publish Docs + runs-on: ubuntu-latest + environment: + name: documentation-deployment + url: https://rfdetr.roboflow.com/ + timeout-minutes: 10 + strategy: + matrix: + python-version: ["3.10"] + steps: + - name: 📥 Checkout the repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + fetch-depth: 0 + + - name: 🐍 Install uv and set Python ${{ matrix.python-version }} + uses: astral-sh/setup-uv@4db96194c378173c656ce18a155ffc14a9fc4355 # v5.2.2 + with: + python-version: ${{ matrix.python-version }} + + - name: 🔑 Create GitHub App token (mkdocs) + id: mkdocs_token + uses: actions/create-github-app-token@c1a285145b9d317df6ced56c09f525b5c2b6f755 # v1.11.1 + with: + app-id: ${{ secrets.MKDOCS_APP_ID }} + private-key: ${{ secrets.MKDOCS_PEM }} + owner: roboflow + repositories: mkdocs-material-insiders + + - name: 🏗️ Install dependencies + run: | + uv pip install -r pyproject.toml --extra docs + uv pip install -e ".[docs]" + # Install mkdocs-material-insiders using the GitHub App token + uv pip install "git+https://roboflow:${{ steps.mkdocs_token.outputs.token }}@github.com/roboflow/mkdocs-material-insiders.git@9.6.2-insiders-4.53.15#egg=mkdocs-material[imaging]" + + - name: ⚙️ Configure git for github-actions + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: 🚀 Deploy Development Docs + if: (github.event_name == 'push' && github.ref == 'refs/heads/develop') || github.event_name == 'workflow_dispatch' + run: | + MKDOCS_GIT_COMMITTERS_APIKEY=${{ secrets.GITHUB_TOKEN }} uv run mike deploy --push develop + + - name: 🚀 Deploy Release Docs + if: github.event_name == 'release' && github.event.action == 'published' + run: | + latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`) + MKDOCS_GIT_COMMITTERS_APIKEY=${{ secrets.GITHUB_TOKEN }} uv run mike deploy --push --update-aliases $latest_tag latest \ No newline at end of file