はじめに
個人用に開発し、GitHubのプライベートリポジトリで管理しているGolangのアプリケーションがあります。インストールなどの管理を一元化をするため、Homebrewを利用してインストールできるように対応してみました。その際に参考にした情報を以下にまとめます。本投稿は個人用の備忘録の意味合いが大きく、私が忘れた時にまた参照しようと思って書いています。
準備
全体的な流れ
プライベートリポジトリのアプリをHomebrewでインストールできるようにするための全体的な流れは以下の通りです。
- GoReleaserでリリース自動化設定
- GitHub上でPersonal Access Tokenを作成(Contents Read権限付与)
-
brew tap
でプライベートリポジトリ追加 -
brew install
でアプリインストール完了(インストール時に環境変数HOMEBREW_GITHUB_API_TOKEN
設定)
手順1:インストール用の配布物(アプリケーションのバイナリ)を作成する
まず該当アプリケーションを開発しているリポジトリでGoReleaserを利用し、配布物を作るようにします。こちらの記事を参考にしました。
GoReleaser で Go 製 CLI のリリースを自動化& Homebrew でインストールできるようにする
基本的にこの記事の通りに対応すればリリース物の作成ができると思います。
私がよく見失ってしまうPAT作成画面のリンクはこちらです。
手順2:プライベートリポジトリからインストールできるようにする
こちらの記事を参考にしました。
プライベートリポジトリをbrew tapでinstallできるようにする
こちらの対応をするにあたって、該当リポジトリにアクセスするためのPersonal Access Tokenを払い出しておく必要があります。
この際のポイントは、「該当アプリケーションを開発しているリポジトリ」に対して"Contents"の"Read"権限を付与したTokenを払い出す必要があるという点です。
インストール
ここまで対応すると、以下のようなコマンドでインストールすることができます。
以下は、シェルがfish
の場合です。
brew tap xtatsux/hoge git@github.com:xtatsux/hoge.git //こちらは実際のリポジトリのURLに置き換えてください
set -x HOMEBREW_GITHUB_API_TOKEN <token> //<token>は実際のPATを入力してください
brew install xtatsux/tap/hoge
hoge
が、今回Homebrewでインストールしたい該当のアプリケーションのリポジトリになります。
おわりに
これでプライベートリポジトリの生成物をHomebrewを利用してインストールすることができるようになりました。Tokenを環境変数に設定する必要があるのでちょっと一手間ありますが、アプリケーションのインストールについては管理が簡単になってよいですね。