この記事ではRust製のcliをbrew install
できるようになるまでの手順について書きます。(CI上で実行できるようにしたいのですが、まずは手でやります) サンプルとして利用するのは、前回の記事で紹介した、MySQLにpingをうつだけのcli, mysqlpinger
です。
Build
--release
でbuildして、tarにします。file名は他のprojectにならって、<binname>-<version>-<target>.tar.gz
としました。 また、あとで利用するので、hash値を取得しておきます。
Github release
buildしたbinaryを公開するために、githubのreleaseを利用します。新しいreleaseを作成し、さきほど作成したtar fileをuploadします。 releaseが作成されると、Assetsにリンクが生成されます。
Homebrew Formulaの作成
homebrew-mysqlpinger
という名前のrepositoryをgithub上に作成して、cloneしてきます。
上記のようにFormula/mysqlpinger.rb
を作成して、classを定義します。 url
には、github releaseのasset fileのlinkを指定します。 sha256
にはtar fileのhash値を指定します。 (class名をMySQLPinger
のようにするとエラーになりました)
ここまでを作成して、pushします。
Install
無事、installすることができました。🎉 github releaseの作成、fileのupload, formula repositoryの更新までをコマンドでできたらこの作業をci上でおこなえそうです。 Rust製でよさそうなツールを探して、なければ作ってみようと思います。
参考にさせていただいたブログ
- https://federicoterzi.com/blog/how-to-publish-your-rust-project-on-homebrew/