Skip to content

fix: crates.io公開ワークフローを冪等化#17

Merged
T3pp31 merged 2 commits into
mainfrom
codex/fix-github-actions-for-crates.io-publish
Apr 18, 2026
Merged

fix: crates.io公開ワークフローを冪等化#17
T3pp31 merged 2 commits into
mainfrom
codex/fix-github-actions-for-crates.io-publish

Conversation

@T3pp31
Copy link
Copy Markdown
Owner

@T3pp31 T3pp31 commented Apr 17, 2026

Motivation

  • 同一タグでワークフローを再実行した際や既に公開済みのバージョンに対して cargo publish を実行するとジョブが失敗する問題を防止するための変更です。
  • crate 名やバージョンをハードコードせず自動取得して公開判定を行うことで運用の頑健性を高めます。

Description

  • publish ジョブに Extract crate metadata ステップを追加し、cargo metadata と簡易 Python パーサで crate_namecrate_version を取得して GITHUB_OUTPUT に出力するようにしました。
  • Check if version is already published ステップを追加し、curlhttps://crates.io/api/v1/crates/{name}/{version} を叩いて 200 はスキップ、404 は公開対象、その他はエラーとして失敗させるようにしました。
  • Publish to crates.io ステップに条件分岐 if: ${{ steps.publish_guard.outputs.should_publish == 'true' }} を追加して、未公開時のみ cargo publish を実行するようにしました。

Testing

  • 既存のテストスイートをローカルで cargo test --verbose により実行し、全ての自動テストが成功することを確認しました。

Codex Task

@T3pp31 T3pp31 merged commit e4082d7 into main Apr 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant