rust
TravisCI

Travis CIでRustのバイナリリリース(glibc, musl libc)

Travis CI上で各プラットフォーム向けのビルドをおこないます。ビルドされたバイナリはGithub Release上にアップロードされるようにします。

ひとまず、自分の場合は次の3つのビルドターゲットが必要でした。

  • x86_64-unknown-linux-gnu
  • x86_64-unknown-linux-musl
  • x86_64-apple-darwin

もし、glibcむけのビルド(x86_64-unknown-linux-gnu)だけでよいのであれば、こちらの記事の設定がシンプルで良さそうです。

自分の場合は、musl libc向けのビルドも必要になりそうだったため、こちらのtrustという、ビルドテンプレートを使用しました。

上記以外にも、様々なビルドターゲットに対応しています。trustのREADMEを参照してください。

設定

trustのリポジトリからci/ディレクトリと、.travis.ymlを自分のリポジトリにコピーします。
(Windows向けのビルドに対応する場合は、appveyor.ymlも)

いくつか、自分用の設定に書き換える必要があるのですが、それらの部分はTODOとコメントしてあるので、TODOをgrepして潰していけば大丈夫です。

まずは、ここを自分のcrate名(プロジェクト名)に変えます。

.travis.yml
env:
  global:
    # TODO Update this to match the name of your project.
    - CRATE_NAME=trust

Build Matrixは、自分の必要なビルドターゲットだけを残してコメントアウトします。

.travis.yml
matrix:
  include:
    # 必要なもの以外はコメントアウト

Githubトークン(を暗号化したもの)を自分のものに書き換えます。
トークンの発行の仕方は、この記事を参考にします。

.travis.yml
deploy:
  api_key:
    secure: XXXXXXXXXXXXXXXXXXXXXXXX

ここは、デプロイされる条件です。そのままだと、タグがつけられた時にリリースされるようになっています。

.travis.yml
deploy:
  ...
  on:
    condition: $TRAVIS_RUST_VERSION = stable
    tags: true

あとは、ci/ディレクトリ以下にも、自分のcrate名に合わせて書き換える箇所があるので、TODOコメントを検索して修正をおこないます。

確認

タグをつけてpushすると、Travis CI上でビルドが実行されます。ビルドが成功して、Github ReleaseにTARのアーカイブがアップロードされていれば、ちゃんと動作しています。