Skip to content

ci(publish): 公開結果の確認で trustedPublisher を取り直す - #33

Merged
kochizufan merged 1 commit into
masterfrom
dec26/publish-tp-retry
Nov 4, 2026
Merged

kochizufan merged 1 commit into
masterfrom
dec26/publish-tp-retry

Conversation

@kochizufan

Copy link
Copy Markdown
Member

概要

publish.yml の confirm ジョブ(公開結果の確認)は、版と dist-tag が registry に見えるまで待ったあと、npm view <name>@<version> _npmUser.trustedPublisher --json を 1 回だけ取って最終判定していました。公開の直後は npm が古い応答を返すことがあり、公開済みでも「trustedPublisher が付いていない」で失敗することがありました。

変更

  • 最終判定が trustedPublisher の欠落だけで落ちるときは、CONFIRM_INTERVAL_SECONDS の間隔を置いて取り直します。経過時間は版と dist-tag の待ちと同じ上限(CONFIRM_WAIT_SECONDS)、回数も同じ上限です
  • 上限を使い切ったら、従来どおり error で止めます(誤って成功にはしません)
  • 版・dist-tag・provenance の欠落では取り直しません(従来どおり)
  • 取り直しの途中では error の注記も summary の行も出さず、最後の判定の結果だけを出します
  • 最悪の所要時間は 待ちの上限 1800 + 間隔 15 + npm view の上限 20 × 2 + 余裕 300 = 2155 秒で、job の timeout-minutes: 45(2700 秒)に収まります

変更は .github/workflows/publish.yml の 1 ファイルだけです。repo ごとの設定(CI_WORKFLOW_FILE: test.yml・RELEASE_CHECK: pnpm run prepublishOnly)は変えていません。

確かめたこと

  • 確認ステップの run を npm のスタブで実行するテストで、「1 回目に空・2 回目に付く → 成功」「最後まで空 → 失敗」「provenance も無い → 取り直さず失敗」「待ちの上限 0 秒 → 1 回だけ取って失敗」を確かめています
  • このワークフローは今回は起動していません(dry run もしていません)

🤖 Generated with Claude Code

公開の直後は npm が古い応答を返し、_npmUser.trustedPublisher が欠けることがある。
最終判定が trustedPublisher の欠落だけで落ちるときは、版と dist-tag の待ちと同じ上限の中で
間隔を置いて取り直す。使い切ったら従来どおり error で止める。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kochizufan
kochizufan merged commit 640b8d1 into master Nov 4, 2026
4 checks passed
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