From 74406ac15bb0d1d120bdacb428fdd148609594cf Mon Sep 17 00:00:00 2001 From: Tom French <15848336+TomAFrench@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:44:07 +0000 Subject: [PATCH] chore(ci): always build docs (#4062) # Description ## Problem\* Resolves ## Summary\* This PR splits building and deploying a preview of the docs. This should enforce that docs are always ready to be published without generating a large number of unnecessary deploys. ## Additional Context ## Documentation\* Check one: - [x] No documentation needed. - [ ] Documentation included in this PR. - [ ] **[Exceptional Case]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings. --- .github/actions/setup/action.yml | 2 +- .github/workflows/docs-pr.yml | 50 ++++++++++++++++++++---------- .github/workflows/publish-docs.yml | 9 ++---- .github/workflows/release.yml | 5 --- 4 files changed, 36 insertions(+), 30 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 8e24b6738a9..b265a63d29a 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -4,7 +4,7 @@ description: Installs the workspace's yarn dependencies and caches them runs: using: composite steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 id: node with: node-version: 18.17.1 diff --git a/.github/workflows/docs-pr.yml b/.github/workflows/docs-pr.yml index a16487a49ef..cf40b9357cd 100644 --- a/.github/workflows/docs-pr.yml +++ b/.github/workflows/docs-pr.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Check if label is present id: check-labels - uses: actions/github-script@v3 + uses: actions/github-script@v7.0.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -21,10 +21,11 @@ jobs: } // Fetch the list of files changed in the PR - const { data: files } = await github.pulls.listFiles({ + const { data: files } = await github.rest.pulls.listFiles({ owner: context.repo.owner, repo: context.repo.repo, - pull_number: context.issue.number + pull_number: context.issue.number, + per_page: 100 }); // Check if any file is within the 'docs' folder @@ -33,7 +34,7 @@ jobs: - name: Add label if not present if: steps.check-labels.outputs.result == 'true' - uses: actions/github-script@v3 + uses: actions/github-script@v7.0.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | @@ -47,20 +48,14 @@ jobs: }) } - build_and_deploy_preview: + build_preview: runs-on: ubuntu-latest - permissions: - pull-requests: write - needs: add_label - if: needs.add_label.outputs.has_label == 'true' steps: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '18' + - name: Install Yarn dependencies + uses: ./.github/actions/setup - name: Install wasm-bindgen-cli uses: taiki-e/install-action@v2 @@ -71,13 +66,34 @@ jobs: run: | npm i wasm-opt -g - - name: Install Yarn dependencies - uses: ./.github/actions/setup - - name: Build docs run: - yarn workspaces foreach -Rt run build + yarn workspaces foreach -Rpt --from docs run build + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: docs + path: ./docs/build/ + retention-days: 3 + + deploy_preview: + needs: [build_preview, add_label] + runs-on: ubuntu-latest + permissions: + pull-requests: write + if: needs.add_label.outputs.has_label == 'true' + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download built docs + uses: actions/download-artifact@v3 + with: + name: docs + path: ./docs/build + - name: Deploy to Netlify uses: nwtgck/actions-netlify@v2.1 with: diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 07b39d7627c..231b57550c9 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -15,10 +15,8 @@ jobs: - name: Checkout release branch uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '18' + - name: Install Yarn dependencies + uses: ./.github/actions/setup - name: Install wasm-bindgen-cli uses: taiki-e/install-action@v2 @@ -29,9 +27,6 @@ jobs: run: | npm i wasm-opt -g - - name: Install Yarn dependencies - uses: ./.github/actions/setup - - name: Build docs for deploying working-directory: docs run: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 06a2811375a..22a733b38c5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -77,11 +77,6 @@ jobs: ref: ${{ fromJSON(needs.release-please.outputs.release-pr).headBranchName }} token: ${{ secrets.NOIR_RELEASES_TOKEN }} - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '18' - - name: Install Yarn dependencies uses: ./.github/actions/setup