Skip to content

ci: release workflow に workflow_dispatch を追加#52

Merged
tomoemon merged 2 commits into
mainfrom
ci/release-workflow-dispatch
May 17, 2026
Merged

ci: release workflow に workflow_dispatch を追加#52
tomoemon merged 2 commits into
mainfrom
ci/release-workflow-dispatch

Conversation

@tomoemon

@tomoemon tomoemon commented May 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • release.yamlworkflow_dispatch を追加し、npm publish を手動実行できるようにする
  • publish するバージョンはチェックアウトした package.json から取得するため、実行時の入力は不要
  • workflow_dispatch 実行時に publish ステップがスキップされないよう prerelease 判定を修正

設計の背景

release-tag.yamlGITHUB_TOKEN を使って GitHub release を作成しているが、GitHub の仕様により GITHUB_TOKEN が起こしたイベントは他の workflow をトリガーしない。そのため release.yamlon: release: types: [published])が起動せず、npm publish が走らなかった(v0.4.1 が npm 未公開のまま)。

恒久対応として workflow_dispatch を追加し、自動チェーンが切れた場合でも手動で publish できる経路を用意する。

変更点の詳細:

  • checkoutref を、release イベントはタグ (github.event.release.tag_name)、手動実行は対象ブランチ (github.ref、通常 main) に切り替え
  • publish するバージョンは release イベント・手動実行のどちらもチェックアウトした package.json から取得する。release-tag が package.json の変更を起点にタグを作るため、タグ側の package.json は常にそのバージョンになっており、入力やタグ指定は不要
  • バージョンを package.json から取得するようになったため、タグ名から version を同期していた Sync package.json version with release tag ステップを削除
  • publish ステップの条件を github.event_name == 'workflow_dispatch' || github.event.release.prerelease == false に変更(手動実行時は github.event.release が存在せず判定が false になり publish がスキップされてしまうため)

検討した代替案

  • workflow_dispatch にタグ入力を設ける案: 当初はタグ文字列を入力させる実装だったが、type: choice の選択肢は静的にしか定義できず release tag を動的に一覧化できない。自由入力は打ち間違いの余地がある。最新 main の package.json の version をそのまま使えば入力自体が不要になるため、入力を撤廃した
  • release-tag.yamlgh release create を PAT に切り替える案: 自動チェーンは復活するが、PAT の発行・secret 管理・更新の運用コストがかかるため見送り
  • release-tag.yaml 内で publish まで行う案: workflow の責務(タグ作成 / 公開)が混ざるため見送り

Test plan

  • マージ後、Actions から release workflow を workflow_dispatch(main ブランチ)で実行し、npm に 0.4.1 が publish されることを確認

🤖 Generated with Claude Code

release-tag workflow が GITHUB_TOKEN で GitHub release を作成すると
release: published イベントが他の workflow をトリガーしないため、
npm publish の release workflow が起動しない。

手動でも publish できるよう workflow_dispatch を追加する。publish する
バージョンは release イベント・手動実行のどちらもチェックアウトした
package.json から取得するため、入力は不要。

- checkout の ref を release イベントはタグ、手動実行は対象ブランチ
  (通常 main) に切り替え
- publish ステップの prerelease 判定は手動実行時スキップされないよう修正
- バージョンは package.json から取得するため version sync ステップを削除

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tomoemon
tomoemon force-pushed the ci/release-workflow-dispatch branch from 0dd75dc to be6df11 Compare May 17, 2026 01:35
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tomoemon
tomoemon merged commit 4b837a1 into main May 17, 2026
1 check passed
@tomoemon
tomoemon deleted the ci/release-workflow-dispatch branch May 17, 2026 01:38
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.

1 participant