ETロボコン参加ハードルの299打鍵を減らす話
目次
成果物
fono09/oo-ev3rt: 一発ビルドとアップロードまでできるやつ
背景
所属している研究室でETロボコンのプライマリクラスを、新人研修として使うことになった。
参加経験がない人間なりに、最大限サポートするという立場から、環境整備を行うことにした。
参考資料あるにDockerを活用して299打鍵以下でビルドした先人のQiitaを見たら、Dockerfile
にentrypoint.sh
当てて、行っている手順を更に自動化できると気づいた。
実装
最終的なビルドに本当に必要なパラメータはビルドを行うプロジェクトのディレクトリ名これだけです。 加えて、オプションとして、ロボットへアップロードするよう指定すると、ロボットへ勝手にアップロードされるようになってます。
Dockerfile
Githubのリポジトリにある通り、
pizzafactory/che-stack-ev3rt
を取ってくる- イメージ内に、entrypoint.shを据えて実行可能にする
/projects
を作業ディレクトリにするentrypoint.sh
をエントリポイントにして動作開始
entrypoint.sh
一部手順はDockerfile
でやってしまってもいいのですが、いかんせん取り出すのが面倒なので、entrypoint.sh
に書いています。
/projects
へ移動/projects
にクローン済みのev3rt-git/ev3rt-hrp2
がないか確認、無ければクローン- ディレクトリを移動し、ローダと指定されたプロジェクトのビルドを終わらせる
- アップロードフラグが立ってたらアップロードする
- メンテナ用にbashを立ち上げる
build.sh
当初はdocker-compose
とか使おうかなと思っていたのですが、立ち上げっぱなしにする必要性も感じず、さらに最初に書いたとおり、ビルドが終われば用済みなので、ビルドしてイメージまるごと消えるようにしました。
- 環境変数
APP_NAME
,UPLOAD
を指定 - イメージを決めたタグでビルド
- コンテナ立ち上げビルド作業
- イメージ消して終了
成果物だけ残してあっさり消えるようになっています。
評価
Qiitaと同等の操作の実現
helloev3
をビルド完了するまでの打鍵数をカウントすることにします。
$ git clone https://github.com/fono09/oo-ev3rt/blob/master/build.sh
$ mkdir ./projects
$ ln -s /mnt/ev3rt upload
$ ./build.sh
アドレスはコピペするとして、64打鍵に抑えました。
それ以外のユースケース
helloev3
以外の場合はbuild.sh
を編集してディレクトリ名を指定するので、打鍵数増加要因となります。
しかしながら、2回目以降は./build.sh
の実行(11打鍵)となるので、非常に強力な打鍵数削減手段であるといえます。