Green Light
QAチームのエンジニアが、配布前のiOSアプリを入れた端末を手に山手線を一周していた。GPS、加速度センサー、Bluetooth。物理センサーが絡むテストは実機で動かすしかない。モックでは拾えない挙動がある。山手線は一周約60分。ちょうどいいらしい。
業界に入ったとき、デプロイはFTPだった。ローカルで修正したファイルをドラッグして本番サーバーに上書きする。手が滑って別のファイルを消したことがある。復旧に半日かかった。それがSCPになり、Capistranoになり、コマンド一発でロールバックができるようになった。
CIが現場に降りてきたのはJenkinsの頃だ。Javaが嫌いだったせいで乗り遅れた。自分が最初に触ったのはGitLab Runnerだった。そこからCircle CI、Drone CIと渡り歩き、いまはGitHub Actionsに落ち着いている。
あまり知られていないが、GitHub ActionsのmacOSランナーの中身はMac Miniの実機だ。Appleのライセンス上仮想化できない。Linuxの10倍の課金。最近はruns-onを一行書き換えるだけで半額になる互換ランナーも出てきている。
FTPの時代から四半世紀。ユニットテスト、結合テスト、静的解析。自動化できるものはほぼCIに載った。ボタンひとつでグリーンのチェックが並ぶ。それでも最後のテストは、いまだに人間が端末を手に持って山手線を回っている。