Launchable Advent Calendar 4日目 - record build command
Launchableの各機能の利用方法を紹介する Launchable Advent Calendar 4日目です。
はじめに
4日目はLaunchableへBuildデータを送る launchable record build
コマンドについて紹介します。
自身のリポジトリで試していただくのをお勧めしますが、適当なリポジトリがない場合は Konboi/launchable-java-exampleをforkしてご利用ください。
今後、本Advent Calendarでは基本的にKonboi/launchable-java-exampleリポジトリを使って説明していきます。
launchable record build
launchable record build
は対象ソフトウェアのビルド情報と開発に使っているリポジトリのコミット情報をLaunchableへ送るコマンドになります。
基本的な使い方はこのようになります。
launchable record build --name <BUILD NAME>
--name
オプションが必須オプションとなります。
基本的に --name
オプションへはユニークな値を指定することを推奨しています。
GitHub Actionsであれば GITHUB_RUN_ID
、Jenkinsであれば BUILD_TAG
。その他環境ではこちらを参考に指定して下さい。
GitHub Actionsでの例
Day 3のGithub Actionsの例に launchable record build
コマンドの設定を追加します。
追加する点は大きく2つです。
1点目はフルクローンを行うように actions/checkout
へ設定の追加。
Launchableでは失敗しやすいテストの選定(PTS)にテスト結果だけではなく、ファイルの変更情報も利用します。変更情報をリポジトリから取得するためにフルクローンをしてもらう必要があります。
2点目は launchable record build
コマンドの追加です。先ほど紹介した様に --name
オプションに GITHUB_RUN_ID
を使用しています。
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: "3.10"
...
pip install launchable
- name: verify
run: launchable verify
+ - name: record build
+ run: launchable record build --name ${GITHUB_RUN_ID}
設定が問題なく行えればWeb AppのBuildsページに送ったビルド情報が反映されているのが確認できます。
他リポジトリに影響を受ける環境
開発環境によっては他のリポジトリをサブモジュールとして読み込んでいる。microservicesな環境で他のmicroserviceの変更が自身のサービスへ影響を与えるなど、他リポジトリの変更がテストへ影響を与える場合があります。
他リポジトリに変更があった場合に影響を受けやすいテストがPTSで選べる様に launchable record build
コマンドではsubmoduleのリポジトリのコミット情報も送るようになっています。
しかし、microservicesな環境などでは他serviceのリポジトリをsubmoduleとして登録することは多くないかもしれません。
launchable record build
コマンドでは --src
オプションを利用することで関係するリポジトリのコミット情報を複数送ることが出来ます。
この様に利用します。--src
に渡すリポジトリのパスは .git
ディレクトリがあるパスを指定する必要があります。
launchable record build --name <BUILD NAME> --src . --src /repoA/path --src /repoB/path
フルクローンが難しい環境
環境によってはリポジトリが巨大なため都度フルクローンする事が難しい場合があります。その場合は --no-commit-collection
オプションを使うことでコミット情報を送る処理をスキップできます。
ただし、別途コミット情報を送る必要があります。
launchable record build --name <BUILD NAME> --no-commit-collection
さいごに
本日はlaunchableコマンドのひとつ launchable record build
コマンドについて紹介しました。
5日目はテスト結果をLaunchableへ送るためのコマンド launchable record tests
コマンドについて紹介します。
Discussion