diff --git a/.claude/rules/ci.md b/.claude/rules/ci.md index 5f470af9..195b3d31 100644 --- a/.claude/rules/ci.md +++ b/.claude/rules/ci.md @@ -8,6 +8,6 @@ paths: - `main` + feature branches, CI runs on non-main branches only - **lint.yml**: `pnpm check` — **test.yml**: `pnpm test:unit` — **build.yml**: `pnpm build` + upload `.next/` - **update-msw.yml**: Auto-update MSW worker (Renovate bot only) -- Shared setup: ubuntu-24.04, 10min timeout, `pnpm/action-setup@v5`, Node.js from `.tool-versions`, copies `.env.development` to `.env.local` +- Shared setup: ubuntu-24.04, 10min timeout, `pnpm/action-setup@v6`, Node.js from `mise.toml`, copies `.env.development` to `.env.local` - `upload-artifact` requires `include-hidden-files: true` for `.next/` - Action versions pinned by commit SHA diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 6079ec94..23731c3a 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -10,13 +10,19 @@ inputs: runs: using: "composite" steps: + - name: Read Node version from mise.toml + id: versions + shell: bash + run: | + echo "node=$(grep -E '^node\s*=' mise.toml | sed 's/.*=\s*"\(.*\)"/\1/')" >> "$GITHUB_OUTPUT" + - name: Install pnpm uses: pnpm/action-setup@08c4be7e2e672a47d11bd04269e27e5f3e8529cb # v6 - name: Setup Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 with: - node-version-file: ".tool-versions" + node-version: ${{ steps.versions.outputs.node }} cache: "pnpm" - name: Install dependencies diff --git a/.tool-versions b/.tool-versions deleted file mode 100644 index 3dc2f9ea..00000000 --- a/.tool-versions +++ /dev/null @@ -1,4 +0,0 @@ -actionlint latest -nodejs 24.14.1 -pnpm 10.33.0 -zizmor latest diff --git a/mise.toml b/mise.toml new file mode 100644 index 00000000..93e2137f --- /dev/null +++ b/mise.toml @@ -0,0 +1,5 @@ +[tools] +actionlint = "1.7.12" +node = "24.14.1" +pnpm = "10.33.0" +zizmor = "1.24.1"