GitHub Actions でデイリービルドしてリリースする

wandbox-builder でビルドしていたいくつかのコンパイラの HEAD バージョンを、自動でデイリービルドしてリリースするようにしてみました。

Image for post
Image for post
https://github.com/melpon/wandbox-builder/releases/tag/heads

同様に webrtc-build でも master ブランチの WebRTC をデイリービルドしてリリースするようにしてみました。

Image for post
Image for post
https://github.com/shiguredo-webrtc-build/webrtc-build/releases/tag/heads

今まで大変だったデイリービルドがこれですごい楽になりました。GitHub Actions 素晴らしいです。

実装について

GitHub Actions の schedule 機能を使ってデイリービルドを行い、出来上がったパッケージを deploy-nightly を使ってリリースにアップロードしているだけです。deploy-nightly すごい便利です。

は以下のようなコードになっています。

で、毎日、日本時間の9時にジョブが走るようにしています。

にある “ run: ./build.ubuntu-18.04_armv8.sh” と書いてあるステップで、ビルドしたりパッケージを行っています。

にある “name: Release ubuntu-18.04_armv8 latest” と、“name: Release ubuntu-18.04_armv8 nightly” と書いているステップで、deploy-nightly を使ってリリースにパッケージ化されたファイルをアップロードしています。

2つのファイルををアップロードしているのは、常に最新のパッケージ(latest)と、過去7日分のパッケージ(nightly)を提供するためです。

deploy-nightly の使い方ですが、README.md を見れば割とすぐに分かります。

注意点として、設定に が必要なので、あらかじめ適当なタグを打ってリリースを作っておく必要があります。リリースを作っておけば、例えば https://api.github.com/repos/melpon/wandbox-builder/releases みたいな感じで API を叩けば、 が分かるので、これを設定するだけです。

あと を含めておけば、これが日付とリポジトリコミットハッシュに変換されるので、これを含めておけば毎日違うアセット名でアップロードできます。

同名のファイルは(deploy-nightly の v1.0.2 から)上書きされるようになっているので、 を含めなければ毎回上書きされます。これで常に最新のバイナリをアップロードできます。

Written by

合同会社Wandboxの代表社員

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store