背景
TravisCIとは継続的な統合(Continuous Integration)を管理してくれるサービスの1つです。これを利用することで、プログラムを変更した時に、動作することを想定している環境に向けてビルドできるか、期待通りに動作するかなどを自動的に確認できます。
Arduinoとはプログラムを書き込めるCPUを搭載した、電子工作に利用しやすい基板です。
Arduino向けにライブラリを公開しているので、それがビルドできるか、TravisCIで管理してみました。
備忘録を兼ねて方法を共有します。
使ったもの
TravisCIのアカウントgithubで管理するArduinoのライブラリのリポジトリ
ビルド状況を監視したいリポジトリの設定を有効化
travis-ci.orgのリポジトリ一覧画面でビルドしたいリポジトリを検索して、設定を有効化しますSomeSerialというリポジトリを検索しました。
リポジトリの行の右側のスイッチをクリックすると、ビルド設定を切り替えられます。
色が付いていたら監視されています。
TravisCIは取り込んだ情報を表示しているらしく、新しく作成したリポジトリが一覧に表示されない場合があります。
そんなときは設定画面の「Sync account」ボタンをクリックすると、githubと情報が同期されてリポジトリが表示されるようになります。
.travis.ymlを追加
監視されるようになったら、リポジトリに.travis.ymlをした状態でコミットするか手動でビルドを実行すると、.travis.ymlの条件を満たすか検査してくれます。Arduinoのライブラリ管理についてはAdafruitのadaさんがスクリプトを共有してくれているので、それを利用するのが良いと思います。
紹介記事: Travis CI | The Well-Automated Arduino Library | Adafruit Learning System
スクリプト本体: adafruit/travis-ci-arduino/install.sh
上記のスクリプトを利用して自分なりに組み立てた.travis.ymlはこちらです。
ビルド状況が変わったらメールを送信するせっていにしています。
language: c sudo: false cache: directories: - ~/arduino_ide - ~/.arduino15/packages/ git: depth: false quiet: true env: global: - ARDUINO_IDE_VERSION="1.8.8" - PRETTYNAME="SomeSerial" before_install: - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) script: - build_main_platforms notifications: email: on_success: change on_failure: change
adaさんのスクリプトによるbuild_main_platformsコマンドを利用すると、2019.03.29時点では下記のボードに対して全てのexampleプロジェクトをビルドできるか確認してくれます。
- Arduino Uno
- Arduino Leonardo
- Arduino Mega2560
- Arduino Due
- Arduino Zero
- ESP8266
- ESP32
- Adafruit Feather M4 Express
Serialを関数の引数として使っている場合は、ボードによって型が異なるため、上記すべてのボードのビルドを成功させるには、自分が以前に書いたこちらの記事が参考になると思います。
いろんなArduinoのシリアルを関数の引数として使う方法
Unoだけのビルドを確認できたら良い場合は、scriptの記述をこのようにするとUnoだけ確認してくれます。
script: - build_main_platform uno
スクリプトで定義されるコマンドについては、スクリプト本体を読み解くのが良いと思います。
githubにpushしてビルドが始まるとTravisCIの画面が黄色くなります。
失敗すると赤色になります。
成功すると緑色になります。
.travis.ymlを追加したのにビルドが始まらない場合は、.travis.ymlに無効な記述が含まれている可能性があります。
リポジトリのビルド画面からMore Options -> Requestsを選択することで、TravisCIの詳しい状況を確認できます。
.travis.ymlが間違っている場合は、「Could not parse .travis」という内容で処理が止まるようです。
READMEにビルド状況を追加
githubのREADMEに埋め込める画像は、TravisCIのビルド状況をクリックすると取得できます。ビルド状況をクリックして出てくる画面でREADMEを選択して、下部に表示されるマークダウン表記の画像をREADMEに追加できます。
エディタでREADME.mdに追加します。
追加の変更をcommitしてpushすれば、TravisCIのビルド状況がgithubで確認できます。
ライブラリを管理している雰囲気が出て、個人的に嬉しいです。
まとめ
TravisCIで複数のArduinoでビルドが成功するか自動で確認できるようになりました。この情報が何かの役に立てば嬉しいです。
参考
AdafruitのadaさんによるTravisCIの解説記事です。Travis CI | The Well-Automated Arduino Library | Adafruit Learning System
AdafruitのToddさんによる解説記事です。
Travis CI Configuration | Continuous Integration, Arduino, and You | Adafruit Learning System
ArduinoIDEのCIでの操作方法解説ページです。
Arduino/build/shared/manpage.adoc
0 件のコメント :
コメントを投稿