From bce546d58957d82692883745c7c2808bb45a453b Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 13:28:23 -0700 Subject: [PATCH 1/8] ci: Upgrade GitHub actions from Node v20 to v24 --- .github/workflows/monkey-ci.yml | 45 +++++++++++++++++---------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index 4edbb5073168..f1ae266b4617 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -4,6 +4,7 @@ env: PNPM_VERSION: "10.33.0" NODE_VERSION: "24.15.0" RECAPTCHA_SITE_KEY: "6Lc-V8McAAAAAJ7s6LGNe7MBZnRiwbsbiWts87aj" + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true permissions: contents: read @@ -29,7 +30,7 @@ jobs: steps: - name: Full checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Detect changes uses: dorny/paths-filter@v4 @@ -63,13 +64,13 @@ jobs: if: needs.pre-ci.outputs.should-build-be == 'true' || needs.pre-ci.outputs.should-build-fe == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || needs.pre-ci.outputs.assets-or-styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') steps: - name: Sparse checkout pnpm-lock - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: sparse-checkout: | pnpm-lock.yaml - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} @@ -80,7 +81,7 @@ jobs: - name: Cache node modules id: cache-pnpm - uses: actions/cache@v4 + uses: actions/cache@v5 env: cache-name: node-modules with: @@ -90,11 +91,11 @@ jobs: - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') name: Full checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') name: Set up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} @@ -108,19 +109,19 @@ jobs: runs-on: ubuntu-latest if: needs.pre-ci.outputs.should-build-be == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout: | backend packages - name: Set up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} @@ -131,7 +132,7 @@ jobs: - name: Cache node modules id: cache-pnpm - uses: actions/cache@v4 + uses: actions/cache@v5 env: cache-name: node-modules with: @@ -156,14 +157,14 @@ jobs: runs-on: ubuntu-latest if: needs.pre-ci.outputs.should-build-fe == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout: | frontend packages - name: Set up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} @@ -172,7 +173,7 @@ jobs: run: mv ./firebase-config-example.ts ./firebase-config.ts && cp ./firebase-config.ts ./firebase-config-live.ts - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} @@ -183,7 +184,7 @@ jobs: - name: Cache node modules id: cache-pnpm - uses: actions/cache@v4 + uses: actions/cache@v5 env: cache-name: node-modules with: @@ -208,7 +209,7 @@ jobs: runs-on: ubuntu-latest if: needs.pre-ci.outputs.assets-or-styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout: | frontend @@ -233,12 +234,12 @@ jobs: - 'frontend/static/challenges/**' - name: Set up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} @@ -249,7 +250,7 @@ jobs: - name: Cache node modules id: cache-pnpm - uses: actions/cache@v4 + uses: actions/cache@v5 env: cache-name: node-modules with: @@ -285,18 +286,18 @@ jobs: runs-on: ubuntu-latest if: needs.pre-ci.outputs.should-build-pkg == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout: | packages - name: Set up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} @@ -307,7 +308,7 @@ jobs: - name: Cache node modules id: cache-pnpm - uses: actions/cache@v4 + uses: actions/cache@v5 env: cache-name: node-modules with: From 811d2952308bbaa76a43da471bfe1d42e4f95a64 Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 13:52:58 -0700 Subject: [PATCH 2/8] ci: Change to specific node_modules cacheing and let setup-node action cache too --- .github/workflows/monkey-ci.yml | 41 +++++++++------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index f1ae266b4617..804fd710e09b 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -73,11 +73,7 @@ jobs: uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + cache: true - name: Cache node modules id: cache-pnpm @@ -85,7 +81,7 @@ jobs: env: cache-name: node-modules with: - path: ${{ env.STORE_PATH }} + path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} lookup-only: true @@ -98,6 +94,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') name: Install dependencies @@ -119,24 +116,20 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" - name: Setup pnpm uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - name: Cache node modules id: cache-pnpm uses: actions/cache@v5 env: cache-name: node-modules with: - path: ${{ env.STORE_PATH }} + path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies @@ -167,6 +160,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" - name: Create stub firebase config working-directory: ./frontend/src/ts/constants @@ -177,18 +171,13 @@ jobs: with: version: ${{ env.PNPM_VERSION }} - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - name: Cache node modules id: cache-pnpm uses: actions/cache@v5 env: cache-name: node-modules with: - path: ${{ env.STORE_PATH }} + path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies @@ -237,24 +226,20 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" - name: Setup pnpm uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - name: Cache node modules id: cache-pnpm uses: actions/cache@v5 env: cache-name: node-modules with: - path: ${{ env.STORE_PATH }} + path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies @@ -295,24 +280,20 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" - name: Setup pnpm uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - name: Cache node modules id: cache-pnpm uses: actions/cache@v5 env: cache-name: node-modules with: - path: ${{ env.STORE_PATH }} + path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Install dependencies From ab5ce7b92851bac88ad1d8c5bb949a968ab1045d Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 14:01:24 -0700 Subject: [PATCH 3/8] ci: Test decoupling with npm for CI --- .github/workflows/monkey-ci.yml | 92 ++++++++++++++++----------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index 804fd710e09b..c3e5e446acca 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -112,12 +112,6 @@ jobs: backend packages - - name: Set up Node.js - uses: actions/setup-node@v5 - with: - node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" - - name: Setup pnpm uses: pnpm/action-setup@v5 with: @@ -132,17 +126,23 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Install dependencies - run: CI=true pnpm install --frozen-lockfile + # - name: Set up Node.js + # uses: actions/setup-node@v5 + # with: + # node-version: ${{ env.NODE_VERSION }} + # cache: "pnpm" + + # - name: Install dependencies + # run: CI=true pnpm install --frozen-lockfile - name: Check lint - run: npm run lint-fast-be && npm run lint-be + run: pnpm lint-fast-be && pnpm lint-be - name: Build - run: npm run build-be + run: pnpm build-be - name: Test - run: npm run test-be + run: pnpm test-be ci-fe: name: ci-fe @@ -156,12 +156,6 @@ jobs: frontend packages - - name: Set up Node.js - uses: actions/setup-node@v5 - with: - node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" - - name: Create stub firebase config working-directory: ./frontend/src/ts/constants run: mv ./firebase-config-example.ts ./firebase-config.ts && cp ./firebase-config.ts ./firebase-config-live.ts @@ -180,17 +174,23 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Install dependencies - run: CI=true pnpm install --frozen-lockfile + # - name: Set up Node.js + # uses: actions/setup-node@v5 + # with: + # node-version: ${{ env.NODE_VERSION }} + # cache: "pnpm" + + # - name: Install dependencies + # run: CI=true pnpm install --frozen-lockfile - name: Check lint - run: npm run lint-fast-fe && npm run lint-fe + run: pnpm lint-fast-fe && pnpm lint-fe - name: Build - run: npm run build-fe + run: pnpm build-fe - name: Test - run: npm run test-fe + run: pnpm test-fe ci-assets: name: ci-assets @@ -222,12 +222,6 @@ jobs: - 'frontend/static/webfonts/**' - 'frontend/static/challenges/**' - - name: Set up Node.js - uses: actions/setup-node@v5 - with: - node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" - - name: Setup pnpm uses: pnpm/action-setup@v5 with: @@ -242,28 +236,34 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Install dependencies - run: CI=true pnpm install --frozen-lockfile + # - name: Set up Node.js + # uses: actions/setup-node@v5 + # with: + # node-version: ${{ env.NODE_VERSION }} + # cache: "pnpm" + + # - name: Install dependencies + # run: CI=true pnpm install --frozen-lockfile - name: Lint styles if: steps.filter.outputs.styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') - run: npm run lint-styles + run: pnpm lint-styles - name: Lint JSON if: steps.filter.outputs.json == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') - run: npm run lint-json-assets + run: pnpm lint-json-assets - name: Validate language assets if: steps.filter.outputs.languages == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') - run: npm run check-assets-languages + run: pnpm check-assets-languages - name: Validate quote assets if: steps.filter.outputs.quotes == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') - run: npm run check-assets-quotes + run: pnpm check-assets-quotes - name: Validate other assets if: steps.filter.outputs.others == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') - run: npm run check-assets-others + run: pnpm check-assets-others ci-pkg: name: ci-pkg @@ -276,12 +276,6 @@ jobs: sparse-checkout: | packages - - name: Set up Node.js - uses: actions/setup-node@v5 - with: - node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" - - name: Setup pnpm uses: pnpm/action-setup@v5 with: @@ -296,14 +290,20 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Install dependencies - run: CI=true pnpm install --frozen-lockfile + # - name: Set up Node.js + # uses: actions/setup-node@v5 + # with: + # node-version: ${{ env.NODE_VERSION }} + # cache: "pnpm" + + # - name: Install dependencies + # run: CI=true pnpm install --frozen-lockfile - name: Check lint - run: npm run lint-fast-pkg && npm run lint-pkg + run: pnpm lint-fast-pkg && pnpm lint-pkg - name: Build - run: npm run build-pkg + run: pnpm build-pkg - name: Test - run: npm run test-pkg + run: pnpm test-pkg From 8cc6b84b28e360daeae70b9a84bc9d0a78b63289 Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 14:09:45 -0700 Subject: [PATCH 4/8] ci: Jobs need Node v24 setup to run --- .github/workflows/monkey-ci.yml | 40 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index c3e5e446acca..a3f794d6c6c8 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -126,11 +126,11 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - # - name: Set up Node.js - # uses: actions/setup-node@v5 - # with: - # node-version: ${{ env.NODE_VERSION }} - # cache: "pnpm" + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -174,11 +174,11 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - # - name: Set up Node.js - # uses: actions/setup-node@v5 - # with: - # node-version: ${{ env.NODE_VERSION }} - # cache: "pnpm" + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -236,11 +236,11 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - # - name: Set up Node.js - # uses: actions/setup-node@v5 - # with: - # node-version: ${{ env.NODE_VERSION }} - # cache: "pnpm" + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -290,11 +290,11 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - # - name: Set up Node.js - # uses: actions/setup-node@v5 - # with: - # node-version: ${{ env.NODE_VERSION }} - # cache: "pnpm" + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile From 0bcd0e6d6fc57e29045f806cc1f41042e5aa9047 Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 15:41:52 -0700 Subject: [PATCH 5/8] ci: Do not allow Node setup action to also cache --- .github/workflows/monkey-ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index a3f794d6c6c8..421952264907 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -94,7 +94,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" + package-manager-cache: false - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') name: Install dependencies @@ -130,7 +130,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" + package-manager-cache: false # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -178,7 +178,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" + package-manager-cache: false # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -240,7 +240,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" + package-manager-cache: false # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -294,7 +294,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - cache: "pnpm" + package-manager-cache: false # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile From afd4c603a4562f96acde8820d84a596957971772 Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 15:50:13 -0700 Subject: [PATCH 6/8] Revert "ci: Do not allow Node setup action to also cache" This reverts commit 0bcd0e6d6fc57e29045f806cc1f41042e5aa9047. --- .github/workflows/monkey-ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index 421952264907..a3f794d6c6c8 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -94,7 +94,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - package-manager-cache: false + cache: "pnpm" - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') name: Install dependencies @@ -130,7 +130,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - package-manager-cache: false + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -178,7 +178,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - package-manager-cache: false + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -240,7 +240,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - package-manager-cache: false + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile @@ -294,7 +294,7 @@ jobs: uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} - package-manager-cache: false + cache: "pnpm" # - name: Install dependencies # run: CI=true pnpm install --frozen-lockfile From 923bdbd71e4097dde44e7ecaa63f253ea8f4f391 Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 15:56:25 -0700 Subject: [PATCH 7/8] ci: Try using built-in cacheing in existing actions --- .github/workflows/monkey-ci.yml | 101 +++++++++++++++----------------- 1 file changed, 48 insertions(+), 53 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index a3f794d6c6c8..e63734afdc79 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -63,11 +63,8 @@ jobs: needs: [pre-ci] if: needs.pre-ci.outputs.should-build-be == 'true' || needs.pre-ci.outputs.should-build-fe == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || needs.pre-ci.outputs.assets-or-styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') steps: - - name: Sparse checkout pnpm-lock + - name: Full checkout uses: actions/checkout@v5 - with: - sparse-checkout: | - pnpm-lock.yaml - name: Setup pnpm uses: pnpm/action-setup@v5 @@ -75,29 +72,23 @@ jobs: version: ${{ env.PNPM_VERSION }} cache: true - - name: Cache node modules - id: cache-pnpm - uses: actions/cache@v5 - env: - cache-name: node-modules - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - lookup-only: true - - - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') - name: Full checkout - uses: actions/checkout@v5 + # - name: Cache node modules + # id: cache-pnpm + # uses: actions/cache@v5 + # env: + # cache-name: node-modules + # with: + # path: node_modules + # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} + # lookup-only: true - - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') - name: Set up Node.js + - name: Set up Node.js uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} cache: "pnpm" - - if: steps.cache-pnpm.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'refresh-ci-cache') - name: Install dependencies + - name: Install dependencies run: CI=true pnpm install --frozen-lockfile ci-be: @@ -116,15 +107,16 @@ jobs: uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} + cache: true - - name: Cache node modules - id: cache-pnpm - uses: actions/cache@v5 - env: - cache-name: node-modules - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} + # - name: Cache node modules + # id: cache-pnpm + # uses: actions/cache@v5 + # env: + # cache-name: node-modules + # with: + # path: node_modules + # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Set up Node.js uses: actions/setup-node@v5 @@ -164,15 +156,16 @@ jobs: uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} + cache: true - - name: Cache node modules - id: cache-pnpm - uses: actions/cache@v5 - env: - cache-name: node-modules - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} + # - name: Cache node modules + # id: cache-pnpm + # uses: actions/cache@v5 + # env: + # cache-name: node-modules + # with: + # path: node_modules + # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Set up Node.js uses: actions/setup-node@v5 @@ -226,15 +219,16 @@ jobs: uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} + cache: true - - name: Cache node modules - id: cache-pnpm - uses: actions/cache@v5 - env: - cache-name: node-modules - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} + # - name: Cache node modules + # id: cache-pnpm + # uses: actions/cache@v5 + # env: + # cache-name: node-modules + # with: + # path: node_modules + # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Set up Node.js uses: actions/setup-node@v5 @@ -280,15 +274,16 @@ jobs: uses: pnpm/action-setup@v5 with: version: ${{ env.PNPM_VERSION }} + cache: true - - name: Cache node modules - id: cache-pnpm - uses: actions/cache@v5 - env: - cache-name: node-modules - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} + # - name: Cache node modules + # id: cache-pnpm + # uses: actions/cache@v5 + # env: + # cache-name: node-modules + # with: + # path: node_modules + # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - name: Set up Node.js uses: actions/setup-node@v5 From 54eacd3d1fe04de34760e17aa596ef03a2445b1b Mon Sep 17 00:00:00 2001 From: Marlow Payne Date: Sat, 2 May 2026 16:25:49 -0700 Subject: [PATCH 8/8] ci: Install in CI jobs, since pnpm store is cached --- .github/workflows/monkey-ci.yml | 62 +++++---------------------------- 1 file changed, 8 insertions(+), 54 deletions(-) diff --git a/.github/workflows/monkey-ci.yml b/.github/workflows/monkey-ci.yml index e63734afdc79..cb349d02f43d 100644 --- a/.github/workflows/monkey-ci.yml +++ b/.github/workflows/monkey-ci.yml @@ -72,16 +72,6 @@ jobs: version: ${{ env.PNPM_VERSION }} cache: true - # - name: Cache node modules - # id: cache-pnpm - # uses: actions/cache@v5 - # env: - # cache-name: node-modules - # with: - # path: node_modules - # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - # lookup-only: true - - name: Set up Node.js uses: actions/setup-node@v5 with: @@ -109,23 +99,14 @@ jobs: version: ${{ env.PNPM_VERSION }} cache: true - # - name: Cache node modules - # id: cache-pnpm - # uses: actions/cache@v5 - # env: - # cache-name: node-modules - # with: - # path: node_modules - # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Set up Node.js uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} cache: "pnpm" - # - name: Install dependencies - # run: CI=true pnpm install --frozen-lockfile + - name: Install dependencies + run: CI=true pnpm install --frozen-lockfile - name: Check lint run: pnpm lint-fast-be && pnpm lint-be @@ -158,23 +139,14 @@ jobs: version: ${{ env.PNPM_VERSION }} cache: true - # - name: Cache node modules - # id: cache-pnpm - # uses: actions/cache@v5 - # env: - # cache-name: node-modules - # with: - # path: node_modules - # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Set up Node.js uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} cache: "pnpm" - # - name: Install dependencies - # run: CI=true pnpm install --frozen-lockfile + - name: Install dependencies + run: CI=true pnpm install --frozen-lockfile - name: Check lint run: pnpm lint-fast-fe && pnpm lint-fe @@ -221,23 +193,14 @@ jobs: version: ${{ env.PNPM_VERSION }} cache: true - # - name: Cache node modules - # id: cache-pnpm - # uses: actions/cache@v5 - # env: - # cache-name: node-modules - # with: - # path: node_modules - # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Set up Node.js uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} cache: "pnpm" - # - name: Install dependencies - # run: CI=true pnpm install --frozen-lockfile + - name: Install dependencies + run: CI=true pnpm install --frozen-lockfile - name: Lint styles if: steps.filter.outputs.styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci') @@ -276,23 +239,14 @@ jobs: version: ${{ env.PNPM_VERSION }} cache: true - # - name: Cache node modules - # id: cache-pnpm - # uses: actions/cache@v5 - # env: - # cache-name: node-modules - # with: - # path: node_modules - # key: ${{ runner.os }}-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('pnpm-lock.yaml') }} - - name: Set up Node.js uses: actions/setup-node@v5 with: node-version: ${{ env.NODE_VERSION }} cache: "pnpm" - # - name: Install dependencies - # run: CI=true pnpm install --frozen-lockfile + - name: Install dependencies + run: CI=true pnpm install --frozen-lockfile - name: Check lint run: pnpm lint-fast-pkg && pnpm lint-pkg