From 1c5fdff52d1bbcad3a75dcf8ce6e9b8c01bc6f0d Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Thu, 2 Jul 2026 14:30:23 -0300 Subject: [PATCH 1/3] chore: upgrade pnpm to 11.9.0 Move overrides and hoisting settings into pnpm-workspace.yaml for pnpm 11. --- package.json | 20 +------------------- pnpm-workspace.yaml | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 pnpm-workspace.yaml diff --git a/package.json b/package.json index 7ca4e21d..1bdd07ca 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.45.6", "private": true, "author": "ImagingDataCommons", - "packageManager": "pnpm@10.34.1", + "packageManager": "pnpm@11.9.0+sha512.bd682d5d03fe525ef7c9fd6780c6884d1e756ac4c9c9fe00c538782824310dcf90e3ddc4f53835f06dfaebd5085e41855e0bcbb3b60de2ac5bbab89e5036f03b", "scripts": { "start": "rm -rf ./node_modules/.cache/default-development && ./scripts/set-git-env.sh craco start", "dev": "pnpm run start", @@ -88,23 +88,5 @@ "semantic-release": "21.1.2", "sonarqube-scanner": "^4.3.0", "typescript": "^4.7.4" - }, - "pnpm": { - "overrides": { - "@types/d3-dispatch": "3.0.6", - "axios": "1.17.0", - "nth-check": "2.0.1", - "wrap-ansi": "7.0.0", - "make-dir": "3.1.0", - "axios>form-data": "4.0.6", - "express": "4.21.0", - "jsdom>form-data": "3.0.5", - "path-to-regexp": "0.1.13", - "rollup": "3.30.0", - "semver": "7.5.2", - "serialize-javascript": "7.0.5", - "tar": "7.5.16", - "underscore": "1.13.8" - } } } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..85c0a879 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,22 @@ +shamefullyHoist: true +strictPeerDependencies: false + +allowBuilds: + core-js: true + core-js-pure: true + +overrides: + '@types/d3-dispatch': 3.0.6 + axios: 1.17.0 + nth-check: 2.0.1 + wrap-ansi: 7.0.0 + make-dir: 3.1.0 + axios>form-data: 4.0.6 + express: 4.21.0 + jsdom>form-data: 3.0.5 + path-to-regexp: 0.1.13 + rollup: 3.30.0 + semver: 7.5.2 + serialize-javascript: 7.0.5 + tar: 7.5.16 + underscore: 1.13.8 From f460144d43cbb2e61984172db96ad4b903164484 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Thu, 2 Jul 2026 14:32:04 -0300 Subject: [PATCH 2/3] ci: align workflows with pnpm 11 and Node 24 Drop hardcoded pnpm version so packageManager controls setup, and bump Node.js from 20 to 24. --- .github/workflows/container-tests.yml | 2 +- .github/workflows/deploy-to-firebase.yml | 4 +--- .github/workflows/deploy-to-github-pages.yml | 4 +--- .github/workflows/release.yml | 4 +--- .github/workflows/unit-tests.yml | 4 +--- 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/container-tests.yml b/.github/workflows/container-tests.yml index f8440a86..7ea38eb9 100644 --- a/.github/workflows/container-tests.yml +++ b/.github/workflows/container-tests.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4.4.0 with: - node-version: 20.8.1 + node-version: 24 - name: Build and run containers using docker compose run: docker compose up -d diff --git a/.github/workflows/deploy-to-firebase.yml b/.github/workflows/deploy-to-firebase.yml index 37b4ecca..9d2d9108 100644 --- a/.github/workflows/deploy-to-firebase.yml +++ b/.github/workflows/deploy-to-firebase.yml @@ -17,13 +17,11 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 - with: - version: 10.34.1 - name: Setup Node.js uses: actions/setup-node@v4.4.0 with: - node-version: 20 + node-version: 24 cache: pnpm - name: Install dependencies diff --git a/.github/workflows/deploy-to-github-pages.yml b/.github/workflows/deploy-to-github-pages.yml index 7f61df72..9e8d9550 100644 --- a/.github/workflows/deploy-to-github-pages.yml +++ b/.github/workflows/deploy-to-github-pages.yml @@ -20,13 +20,11 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 - with: - version: 10.34.1 - name: Setup Node.js uses: actions/setup-node@v4.4.0 with: - node-version: 20 + node-version: 24 cache: pnpm - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a184a6d1..6ed27915 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,13 +18,11 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 - with: - version: 10.34.1 - name: Setup Node.js uses: actions/setup-node@v4.4.0 with: - node-version: 20 + node-version: 24 cache: pnpm - name: Install dependencies diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index a7b4b1fd..74ae8947 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -16,13 +16,11 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 - with: - version: 10.34.1 - name: Setup Node.js uses: actions/setup-node@v4.4.0 with: - node-version: 20 + node-version: 24 cache: pnpm - name: Install dependencies From e9066d5df367ac74141d1df3f67c57ccf96d960e Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Thu, 2 Jul 2026 15:04:51 -0300 Subject: [PATCH 3/3] fix(ci): use Firebase preview channels for pull requests Deploy PRs to ephemeral preview channels instead of live, and update the Dockerfile for Node 24 and pnpm 11.9.0. --- .github/workflows/deploy-to-firebase.yml | 11 ++++++++++- Dockerfile | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-to-firebase.yml b/.github/workflows/deploy-to-firebase.yml index 9d2d9108..c7c0c01a 100644 --- a/.github/workflows/deploy-to-firebase.yml +++ b/.github/workflows/deploy-to-firebase.yml @@ -30,7 +30,16 @@ jobs: - name: Build run: REACT_APP_CONFIG=preview PUBLIC_URL=/ pnpm run build - - name: Deploy + - name: Deploy preview + if: github.event_name == 'pull_request' + uses: FirebaseExtended/action-hosting-deploy@v0 + with: + repoToken: "${{ secrets.GITHUB_TOKEN }}" + firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_SLIM }}" + projectId: idc-external-006 + + - name: Deploy to live + if: github.event_name == 'push' uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: "${{ secrets.GITHUB_TOKEN }}" diff --git a/Dockerfile b/Dockerfile index 86f0e675..f2190e2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,18 +14,18 @@ RUN apt-get update && \ unzip && \ apt-get clean -RUN curl -fsSL https://deb.nodesource.com/setup_21.x | bash - && \ +RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && \ apt-get update && \ apt-get install -y --no-install-suggests --no-install-recommends \ nodejs && \ apt-get clean -RUN corepack enable && corepack prepare pnpm@10.34.1 --activate +RUN corepack enable && corepack prepare pnpm@11.9.0 --activate WORKDIR /usr/local/share/mghcomputationalpathology/slim # Install dependencies first and then include code for efficient caching -COPY package.json pnpm-lock.yaml .npmrc ./ +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./ RUN pnpm install --frozen-lockfile