# Copyright 2025 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: "Deploy Versioned Docs" permissions: contents: write on: release: types: [published] jobs: deploy: runs-on: ubuntu-24.04 # This shared concurrency group ensures only one docs deployment runs at a time. concurrency: group: docs-deployment cancel-in-progress: false steps: - name: Checkout Code at Tag uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: ref: ${{ github.event.release.tag_name }} - name: Get Version from Release Tag run: echo "VERSION=${{ github.event.release.tag_name }}" >> $GITHUB_ENV - name: Setup Hugo uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3 with: hugo-version: "0.145.0" extended: true - name: Setup Node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version: "22" - name: Install Dependencies run: npm ci working-directory: .hugo - name: Build Hugo Site run: hugo --minify working-directory: .hugo env: HUGO_BASEURL: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/${{ env.VERSION }}/ HUGO_RELATIVEURLS: false - name: Deploy uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: .hugo/public publish_branch: versioned-gh-pages destination_dir: ./${{ env.VERSION }} keep_files: true commit_message: "deploy: docs for ${{ env.VERSION }}" - name: Clean Build Directory run: rm -rf .hugo/public - name: Build Hugo Site run: hugo --minify working-directory: .hugo env: HUGO_BASEURL: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/ HUGO_RELATIVEURLS: false - name: Deploy to root uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: .hugo/public publish_branch: versioned-gh-pages keep_files: true allow_empty_commit: true commit_message: "deploy: docs to root for ${{ env.VERSION }}"