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名(プロジェクト名)に変えます。
env:
global:
# TODO Update this to match the name of your project.
- CRATE_NAME=trust
Build Matrixは、自分の必要なビルドターゲットだけを残してコメントアウトします。
matrix:
include:
# 必要なもの以外はコメントアウト
Githubトークン(を暗号化したもの)を自分のものに書き換えます。
トークンの発行の仕方は、この記事を参考にします。
deploy:
api_key:
secure: XXXXXXXXXXXXXXXXXXXXXXXX
ここは、デプロイされる条件です。そのままだと、タグがつけられた時にリリースされるようになっています。
deploy:
...
on:
condition: $TRAVIS_RUST_VERSION = stable
tags: true
あとは、ci/
ディレクトリ以下にも、自分のcrate名に合わせて書き換える箇所があるので、TODO
コメントを検索して修正をおこないます。
確認
タグをつけてpushすると、Travis CI上でビルドが実行されます。ビルドが成功して、Github ReleaseにTARのアーカイブがアップロードされていれば、ちゃんと動作しています。