From 7148d9006f275db305fd29d75f452d3272b9ddaf Mon Sep 17 00:00:00 2001 From: "to.watanabe" Date: Sat, 28 Mar 2026 12:21:00 +0900 Subject: [PATCH] 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 ;;