# 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: "docs" permissions: contents: write pull-requests: write # This Workflow depends on 'github.event.number', # not compatible with branch or manual triggers. on: pull_request: # Sync with github_actions_preview_fallback.yml on.pull_request.paths-ignore paths: - 'docs/**' - 'github/workflows/docs**' - '.hugo' jobs: preview: runs-on: ubuntu-24.04 defaults: run: working-directory: .hugo concurrency: # Shared concurrency group wih preview cleanup. group: "preview-${{ github.event.number }}" cancel-in-progress: true steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - name: Setup Hugo uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3 with: hugo-version: "0.145.0" extended: true - name: Setup Node uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 with: node-version: "22" - name: Cache dependencies uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - run: npm ci - run: hugo --minify env: HUGO_BASEURL: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/previews/PR-${{ github.event.number }}/ HUGO_ENVIRONMENT: preview HUGO_RELATIVEURLS: false - name: Deploy # If run from a fork, GitHub write operations will fail. if: ${{ !github.event.pull_request.head.repo.fork }} uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: .hugo/public destination_dir: ./previews/PR-${{ github.event.number }} commit_message: "stage: PR-${{ github.event.number }}: ${{ github.event.head_commit.message }}" - name: Comment # If run from a fork, GitHub write operations will fail. if: ${{ !github.event.pull_request.head.repo.fork }} uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 with: script: | github.rest.issues.createComment({ issue_number: context.payload.number, owner: context.repo.owner, repo: context.repo.repo, body: "🔎 Preview at https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/previews/PR-${{ github.event.number }}/" })