# Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: "CF: Deploy Previous Version Docs" on: workflow_dispatch: inputs: version_tag: description: 'The old version tag to build docs for (e.g., v0.15.0)' required: true type: string jobs: build_and_deploy: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout main branch (for latest templates and theme) uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: ref: 'main' submodules: 'recursive' fetch-depth: 0 persist-credentials: false - name: Checkout old content from tag into a temporary directory uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: ref: ${{ github.event.inputs.version_tag }} path: 'old_version_source' sparse-checkout: | docs persist-credentials: false - name: Replace content with old version run: | # Remove the current content directory from the main branch checkout rm -rf docs/ # Move the old content directory into place mv ./old_version_source/docs docs - name: Setup Hugo uses: peaceiris/actions-hugo@2752ce1d29631191ea3f27c23495fa06139a5b78 # v3 with: hugo-version: "0.163.3" extended: true - name: Setup Node uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: node-version: "22" - name: Install Dependencies run: npm ci working-directory: .hugo - name: Build Hugo Site for Archived Version run: | hugo --minify --config hugo.cloudflare.toml rm -f public/releases.releases working-directory: .hugo env: HUGO_BASEURL: https://mcp-toolbox.dev/${{ github.event.inputs.version_tag }}/ HUGO_RELATIVEURLS: false HUGO_PARAMS_VERSION: ${{ github.event.inputs.version_tag }} - name: Build Pagefind Index (Archived Version) run: npx pagefind --site public working-directory: .hugo - name: Deploy to cloudflare-pages uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: .hugo/public publish_branch: cloudflare-pages destination_dir: ./${{ github.event.inputs.version_tag }} keep_files: true allow_empty_commit: true commit_message: "docs(backport): deploy docs for ${{ github.event.inputs.version_tag }}" - name: Clean Build Directory run: rm -rf .hugo/public - name: Build Hugo Site run: hugo --minify --config hugo.cloudflare.toml working-directory: .hugo env: HUGO_BASEURL: https://mcp-toolbox.dev/ HUGO_RELATIVEURLS: false HUGO_PARAMS_VERSION: ${{ github.event.inputs.version_tag }} - name: Build Pagefind Index (Root) run: npx pagefind --site public working-directory: .hugo - name: Deploy to root uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: .hugo/public publish_branch: cloudflare-pages keep_files: true allow_empty_commit: true commit_message: "deploy: docs to root for ${{ github.event.inputs.version_tag }}"