From 7148d9006f275db305fd29d75f452d3272b9ddaf Mon Sep 17 00:00:00 2001 From: "to.watanabe" Date: Sat, 28 Mar 2026 12:21:00 +0900 Subject: [PATCH 1/2] fix(ci): enable Corepack for yarn and relax pnpm strict mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 18 pnpm/yarn CI jobs fail on main because: 1. pnpm v9+ refuses to install when package.json declares "packageManager": "yarn@4.9.2" — fixed by setting COREPACK_ENABLE_STRICT=0 and --no-frozen-lockfile 2. CI runners only have Yarn Classic (v1.x) but the project uses Yarn Berry (v4.x) — fixed by activating Corepack before the cache/install steps --- .github/workflows/ci.yml | 13 ++++++++++++- .github/workflows/reusable-test.yml | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be6b2564..3b71c594 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,6 +48,13 @@ jobs: with: version: latest + - name: Setup Yarn (via Corepack) + if: matrix.pm == 'yarn' + shell: bash + run: | + corepack enable + corepack prepare yarn@stable --activate + - name: Setup Bun if: matrix.pm == 'bun' uses: oven-sh/setup-bun@v2 @@ -114,12 +121,16 @@ jobs: ${{ runner.os }}-bun- # Install dependencies + # COREPACK_ENABLE_STRICT=0 allows pnpm to install even though + # package.json declares "packageManager": "yarn@..." - name: Install dependencies shell: bash + env: + COREPACK_ENABLE_STRICT: '0' run: | case "${{ matrix.pm }}" in npm) npm ci ;; - pnpm) pnpm install ;; + pnpm) pnpm install --no-frozen-lockfile ;; # --ignore-engines required for Node 18 compat with some devDependencies (e.g., markdownlint-cli) yarn) yarn install --ignore-engines ;; bun) bun install ;; diff --git a/.github/workflows/reusable-test.yml b/.github/workflows/reusable-test.yml index ff907249..e0fdc4fc 100644 --- a/.github/workflows/reusable-test.yml +++ b/.github/workflows/reusable-test.yml @@ -40,6 +40,13 @@ jobs: with: version: latest + - name: Setup Yarn (via Corepack) + if: inputs.package-manager == 'yarn' + shell: bash + run: | + corepack enable + corepack prepare yarn@stable --activate + - name: Setup Bun if: inputs.package-manager == 'bun' uses: oven-sh/setup-bun@v2 @@ -104,12 +111,16 @@ jobs: restore-keys: | ${{ runner.os }}-bun- + # COREPACK_ENABLE_STRICT=0 allows pnpm to install even though + # package.json declares "packageManager": "yarn@..." - name: Install dependencies shell: bash + env: + COREPACK_ENABLE_STRICT: '0' run: | case "${{ inputs.package-manager }}" in npm) npm ci ;; - pnpm) pnpm install ;; + pnpm) pnpm install --no-frozen-lockfile ;; yarn) yarn install --ignore-engines ;; bun) bun install ;; *) echo "Unsupported package manager: ${{ inputs.package-manager }}" && exit 1 ;; From d8e3b9d5934693a0630042ab769b03764b86fd5b Mon Sep 17 00:00:00 2001 From: "to.watanabe" Date: Sat, 28 Mar 2026 12:23:50 +0900 Subject: [PATCH 2/2] fix(ci): remove --ignore-engines for Yarn Berry (v4+) Yarn Berry removed the --ignore-engines flag; engine checking is no longer a core feature. The deprecated flag causes yarn install to exit with error code 1. --- .github/workflows/ci.yml | 4 ++-- .github/workflows/reusable-test.yml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b71c594..757689f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -131,8 +131,8 @@ jobs: case "${{ matrix.pm }}" in npm) npm ci ;; pnpm) pnpm install --no-frozen-lockfile ;; - # --ignore-engines required for Node 18 compat with some devDependencies (e.g., markdownlint-cli) - yarn) yarn install --ignore-engines ;; + # Yarn Berry (v4+) removed --ignore-engines; engine checking is no longer a core feature + yarn) yarn install ;; bun) bun install ;; *) echo "Unsupported package manager: ${{ matrix.pm }}" && exit 1 ;; esac diff --git a/.github/workflows/reusable-test.yml b/.github/workflows/reusable-test.yml index e0fdc4fc..de55605c 100644 --- a/.github/workflows/reusable-test.yml +++ b/.github/workflows/reusable-test.yml @@ -121,7 +121,8 @@ jobs: case "${{ inputs.package-manager }}" in npm) npm ci ;; pnpm) pnpm install --no-frozen-lockfile ;; - yarn) yarn install --ignore-engines ;; + # Yarn Berry (v4+) removed --ignore-engines; engine checking is no longer a core feature + yarn) yarn install ;; bun) bun install ;; *) echo "Unsupported package manager: ${{ inputs.package-manager }}" && exit 1 ;; esac