Skip to content

ci: move the deprecated node20 actions to their current majors - #38

Merged
smileygames merged 1 commit into
mainfrom
issue-36-node20-actions
Aug 21, 2026
Merged

ci: move the deprecated node20 actions to their current majors#38
smileygames merged 1 commit into
mainfrom
issue-36-node20-actions

Conversation

@smileygames

Copy link
Copy Markdown
Member

影響範囲

CI/CD ワークフローのみ。.github/workflows/ci.yml.github/workflows/cd.ymlactions/* の版を上げる。アプリケーションのコード・依存・ビルド構成には触れていない。

変更

action 変更前 変更後
actions/checkout v4 v7
actions/setup-node v4 v7
actions/cache v4 v6

いずれも Node.js 20 を対象としており、GitHub 側が Node.js 24 で強制実行したうえで毎回 deprecation の annotation を出していた。強制実行は猶予であって恒久的な互換保証ではないため、猶予が切れる前に版を上げる。

dtolnay/rust-toolchain@stable はブランチ参照のため対象外。tauri-apps/tauri-action@v0 は Node の deprecation とは別軸のため #37 に分ける。

制約の遵守

  • 版のみを変更し、ステップの構成・キャッシュキー・node-version は変えていない。同時に動かすと、CI が落ちたときに原因が版なのか構成なのか切り分けられなくなるため。
  • ci.yml と cd.yml を同じ PR に含め、同じ action の版が二つのワークフローで食い違う状態を残していない。

検証

  • 移行先の 3 つの major タグが上流に実在することを確認した(actions/checkout@v7 / actions/setup-node@v7 / actions/cache@v6)。
  • setup-node の自動キャッシュは package.jsonpackageManager フィールドがあるときに作動する。この repo には当該フィールドが無いことを確認済みで、node_modules を明示的に持つ既存の actions/cache ステップとは衝突しない。
  • checkout v7 の fork PR ブロックは pull_request_target / workflow_run が対象。ci.yml は push / pull_request、cd.yml は release 発火のため当たらない。
  • runner の最低版要件は GitHub ホストの windows-latest / ubuntu-latest のみを使っているため問題にならない。
  • cd.yml は release 発火のためこの PR の CI では実行されない。検証は ci.yml の実走と、cd.yml の actions/* が ci.yml と同じ版に揃っていることの差分確認による。

Closes #36

ci.yml と cd.yml の `actions/checkout` を v4 から v7 へ、`actions/setup-node`
を v4 から v7 へ、`actions/cache` を v4 から v6 へ上げた。いずれも Node.js 20
を対象としており、GitHub 側が Node.js 24 で強制実行したうえで毎回 deprecation
の annotation を出していた。強制実行は猶予であって恒久的な互換保証ではないため、
猶予が切れる前にこちらから版を上げる。

版だけを上げ、ステップの構成・キャッシュキー・`node-version` は触っていない。
同時に動かすと CI が落ちたときに原因が版なのか構成なのか切り分けられなくなる。
ci.yml と cd.yml を同じ変更に含め、同じ action の版が二つのワークフローで
食い違う状態を残さない。

破壊的変更のうちこの repo に当たりうる 3 点はいずれも影響しないことを確認した。
`setup-node` の自動キャッシュは `package.json` に `packageManager` フィールドが
無いため作動せず、既存の `actions/cache` ステップと衝突しない。`checkout` v7 の
fork PR ブロックは `pull_request_target` / `workflow_run` が対象で、ci.yml は
`push` / `pull_request`、cd.yml は `release` 発火のため当たらない。runner の
最低版要件は GitHub ホストの `windows-latest` / `ubuntu-latest` のみを使って
いるため問題にならない。

`dtolnay/rust-toolchain@stable` はブランチ参照のため対象外。
`tauri-apps/tauri-action@v0` は別軸のため #37 に分ける。

Refs #36

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@smileygames smileygames linked an issue Aug 21, 2026 that may be closed by this pull request
@smileygames smileygames self-assigned this Aug 21, 2026

@smileygames smileygames left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

セルフレビュー(auto モード / 人間チェックなし)

完了条件の照合

#36 の完了条件 結果
3 つが移行先の版になっている 満たす。checkout@v7 / setup-node@v7 / cache@v6
CI が pass し、Node.js 20 の deprecation 警告が消えている 満たす。下の実測を参照
cd.yml の actions/* が ci.yml と同じ版に揃っている 満たす。差分上で両ファイルとも同一の版

制約の照合

  • 版を上げるだけ — 満たす。差分は 8 行すべてが uses: 行であり、ステップ構成・キャッシュキー・node-version に変更はない。
  • ci.yml と cd.yml を同じ PR で上げる — 満たす。版の食い違いは残っていない。
  • cd.yml は release 発火のため PR では走らない — 差分による確認で代替。ci.yml と同一の版であることを上で照合済み。

検証(親側で独立に実測)

  • CI(CI / check)いずれも d7d4fec で pass。
  • 当該 check-run の annotation 数を API で直接取得し、0 件であることを確認した。deprecation 警告は残っていない。完了条件の「警告が消えている」を推定ではなく実測で閉じている。

スコープ

変更ファイルは #36 の対象ファイル一覧と一致。tauri-apps/tauri-action@v0#37 へ分離済み、dtolnay/rust-toolchain@stable はブランチ参照のため対象外。いずれも issue 本文の記載どおりで、超過も不足もない。

指摘

なし。

リリース種別

patch と判定する。CI/CD 設定のみであり、配布されるアプリの挙動に観測可能な変化はない(rules/operations/release-version-rule.md)。

自己レビュー通過。auto モードのため人間チェックはなく、このままマージへ進む。

@smileygames
smileygames merged commit 73be5d7 into main Aug 21, 2026
2 checks passed
@smileygames
smileygames deleted the issue-36-node20-actions branch August 21, 2026 14:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: move the deprecated node20 actions to their current majors

1 participant