はじめに
CircleCIの中の人、Senior Developer Advocateの舟木将彦と申します。
今回は2021年10月以降を振り返っていきます。それ以前の振り返りに関しては、その1, その2をご覧くださいませ。
2021年10月
[プラットフォーム]従来のイメージの廃止
他にも「次世代の〜」「Next-Gen~」という項目が少なからずありますが、こちらの CircleCI Discussのポスト Legacy Convenience Image Deprecation にもある通り、circleci/ で始まるイメージが廃止になります。移行先として、cimg/ で始まるイメージが用意されている場合の他に、移行先がCircleCIから用意されていないケースもあるため、確認が必要です。
なお、CircleCIが提供するものではありませんが、ななうぇぶさんが、GitHubリポジトリに対して、 circleci/php から cimg/php に変更するプルリクエストを作るPHPスクリプトを公開してくださっています。公開いただき、ありがとうございます。
また、circleci/rubyからcimg/rubyへの移行に関しては、Toshimaruさんがご自身のRuby on Railsでの移行経験をブログにしてくださっています。ありがとうございます。
[効率化]テスト インサイト (一般公開)
従来からあったCircleCIのInsights画面にTESTSタブが登場しました。言葉を尽くすよりも、こちらのCircleCIブログ 「結果が不安定なテスト(Flaky Test)を検出できるテスト インサイト機能が登場」にアクセスいただき、中ほどの動画をご覧いただくのが早いです。
過去100回のテストについて、パイプライン実行数とテスト平均実行数、ワークフローごとに、パイプラインの番号、成功したテスト数、失敗したテスト数、エラー数、スキップしたテスト数、成功率が色分けされたグラフで表示されます。
その他、過去のFlaky Testの一覧や、失敗が多いテストの一覧、時間がかかったテストの一覧を見ることができます。
前述のブログには今後の方向性についても書かれているので、あわせてご覧ください。
2021年11月
[機能] パイプラインのスケジュール実行
これまでも ワークフローのスケジュール実行機能という、crontab形式でコンフィグ(config.yml)中にワークフローを定時に実行するしくみはあったのですが、「コンフィグ内に指定する」という性質上、ダイナミックコンフィグや制限付きコンテキストとの相性が良くなかったのを、コンフィグの外側で(API経由で)スケジュール指定できるようにしたものです(プレビュードキュメント)。
これは、単にほとんど同じ機能の指定方法が変わったということに留まらず、CircleCIの今後の方向性が、静的な設定による制御から動的な設定による制御に、VCSプッシュ起点だけでなくAPIコールも起点に(正確にはさまざまな起動イベントを等価に)...といった進化を見せようとしている片鱗なのかもしれません。
[コラボ強化] Public build pages
中の人は、GitHubのリポジトリを見て、トップレベルに .circleci/config.yml があったりすると、そのリポジトリには足を向けて眠れないなーと思っているのですが、さまざまな OSSでCIやCDにCircleCIをご利用いただけているのは、本当にありがたく思います。
これら publicなリポジトリのビルド結果(CircleCIダッシュボード)が以前はCircleCIにログインしなくても(アカウントがなくても)だれでも見えるようになりました。
CircleCIをご利用の方も、ブラウザをシークレットモードで開いた上で、たとえば、下のURLにアクセスいただければ、pytorchのダッシュボードが見られるはずです。
[機能] SSH reruns for Runner
Runnerに対してもSSHでログインしてコンフィグの動作確認、デバッグができるというのは嬉しいですね。中の人、まだ試せていないのですが、これは取り掛からねば。
2021年12月
[効率化]Docker resource utilization graphs
今年 2021年ももう少しChangelogが増えるのかもしれませんが、最後にご紹介させていただくのは、機能を先行チラ見→いつの間にか使えないで一部の方をドキドキさせてしまったDockerコンテナのリソース使用率のグラフ表示機能です。
自分のジョブが全力で仕事をしていないことに気づき、さらなる効率化が図られる事例も共有いただきました。新機能をネタにああ使おう、こう使おうといった会話のあるプロダクトやサービスって、本当にいいですね。
さいごに
さて、3回に渡ってお送りさせていただきました「2021年のChangelogから振り返るCircleCI」、いかがでしたでしょうか?
自分の推しの機能があってヤッターという人も、なぜあの機能の素晴らしさを中の人(私)はちゃんと伝えていないのだとお怒りの方も、2022年は同じ場所に集まって、オフラインでミートアップできるといいですね!
中の人は2022年も引き続き、CircleCIのある「コラボな開発」の楽しさ、人と人とがCI/CDでつながる楽しさをお伝えし続けていければと思います。
Happy Building!