Skip to content

リリース時に Homebrew tap の Formula を自動更新する #7

Description

@yancya

全体ロードマップ: https://github.com/yancya/reminder-cli/issues/3(P3-10)

背景

v1.0.1 で binary 配布に移行したのに、tap(yancya/homebrew-reminder-cli)の Formula は v1.0.0 のソースビルドのまま取り残された。原因は tap 更新が手作業だから。リリース(tag push)時に tap の Formula を自動更新して再発を防ぐ。

現状ポインタ

  • .github/workflows/release.yml — tag push で binary をビルドし reminder-cli-macos.tar.gz を release asset として作成、SHA256 も算出済み(steps.sha256.outputs.sha256)。ここに tap 更新ステップを足す
  • tap 側: homebrew-reminder-cli リポジトリの Formula/reminder-cli.rb。binary 配布用 Formula への書き換えは tap 側の先行 issue(homebrew-reminder-cli#1)で実施される前提。その最終形をテンプレートにする

ゴールと受け入れ条件

  • v* タグを push すると、release asset 作成後に homebrew-reminder-cli の Formula/reminder-cli.rburl(バージョン)と sha256 が自動で書き換わり、tap リポジトリに commit & push される
  • 直接 push ではなく PR 作成でも可(どちらでも良いが、失敗時に気づけるよう workflow を fail させること)
  • tap リポジトリへの書き込み権限は Fine-grained PAT(対象: homebrew-reminder-cli のみ、contents: write)を TAP_GITHUB_TOKEN シークレットとして登録して使う。PAT の発行とシークレット登録は人間の作業なので、実装後にユーザーへ依頼すること
  • Formula の書き換えは sed 等の脆い置換ではなく、テンプレートから全文生成する方式にする(version と sha256 だけ埋める)

手順

  • homebrew-reminder-cli#1(Formula の binary 化)が完了していることを確認。未完なら先にそちら
  • release.yml に tap checkout(TAP_GITHUB_TOKEN 使用)→ Formula 生成 → commit & push のステップを追加
  • Formula テンプレートを reminder-cli リポジトリ内(例: .github/templates/reminder-cli.rb.tmpl)に置く
  • ユーザーに PAT 発行・シークレット登録を依頼
  • 次回リリース(またはテスト用 prerelease タグ)で end-to-end 確認し、brew upgrade で入ることを検証

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions