見出し画像

CircleCI Orbs開発完全ガイド 2019年度版

前置き

CircleCI Orbsというのは、CircleCIのバージョン2.1以降で有効になった、CI/CDワークフローの一部を共通パッケージとして切り出す仕組みです。

CircleCIはバージョン2.0のメジャーアップデートを経て、一気に実行速度が上がりました。しかし、プロセスの共通化をするにはyamlの記述方法を工夫する以外は特に打ち手がありませんでした

Orbはまさにその解決策として提示された、CIプロセスのパッケージ化です。

なお、バージョン2.1になったことで、いくつか追加の概念が登場しました。
executors, commands, jobsです。この辺は公式ドキュメントを見ていただくとして、ざっくり言うとexecutorsが実行環境、commands, jobsが実行プロセスの共通化です。

OrbはDockerのイメージと同じく、作ったものをインターネット上で公開するレジストリがあります。CirclCI Orb Registryです。docker pushと同じく、コマンド経由でアップロードできます。

一番簡単に公開する方法は、orb.ymlという定義ファイルを作って、必要なステップを記述し、レジストリに公開することです。

しかし、丁寧に検証した上で、公開までのプロセスを自動化する場合、多くの設定が必要です。そして、そのプロセスの最適戦略は実は公式ドキュメントには載っていません。基本的な概念自体は公式ドキュメントにもある通り次のような、「セットアップ→記述→検証→公開」というような流れになっています。

orb-toolsという「Orb作成用Orb」を使えば、この過程をスムーズに乗り越えられるのですが、前述の通りそのより良い使い方はドキュメントではなくCircleCIの公式リポジトリの実装の中の一部に散らばっています

そこで、今回は僕が公開したtimakin/go-moduleというOrbを題材にorb-toolsを活用した最適な開発手順を解説していきます。

なお、今回は公開までのプロセスを、
プロジェクトのセットアップ
・Orbの実装方法
・OrbのCI/CD環境構築
に分けて説明していきます。

プロジェクトのセットアップ

namespaceの作成

Orbを作る前に、まずnamespaceというものを作る必要があります。Orbを登録するための名前空間で、
・名前空間の名称
・VCS
・Organization名

の3つを指定する必要があります。ここでいうと以下のようなコマンドになるでしょう。

$ circleci namespace create timakin github timakin
Orbの雛形生成

登録先のnamespaceを作成したら、Orbのプロジェクトを初期化し、雛形を生成しましょう。次のコマンドによって、orb.ymlがポンと置かれたOrbのプロジェクトが生成されているはずです。

$ circleci orb create timakin/go-module
Orbの実装

続きをみるには

残り 9,540字

¥ 500

この記事が気に入ったらサポートをしてみませんか?