CircleCI を活用いただくにつれ、コンフィグ(設定ファイル, config.yml)が肥大化していってしまう、という問題があります。
肥大化するコンフィグを整理するには、3つの方法があります。
- executorキー, commandsキー + パラメーターを使って、類似する部分をくくりだしてまとめる - 1つのコンフィグの中で最適化
- Orb を使って、コンフィグ中の類似する部分をくくりだしてまとめ、他のコンフィグでも利用可能にする - 複数コンフィグ間でノウハウ、実績を共有
- ダイナミックコンフィグを使って、あらかじめ分割しておいたコンフィグを、必要に応じて組み合わせて実行
ここでは、Orbを実際にどのように開発しているのか、CircleCIドキュメントやブログ、実際にご利用いただいた方のブログをご紹介します。
実際に開発いただいた方のブログ
公開中のOrb
-
CircleCI Developer Hub - m-88888888/slack-notify-orb
– CircleCIのJobの結果をいい感じにSlackに通知するOrbsを作ってみた - hachi’s blog (m-88888888.github.io) -
CircleCI Developer Hub - smaeda-ks/orb-hashicorp-vault-cli
– OIDC を使って CircleCI から簡単に HashiCorp Vault と認証+シークレットアクセスできる Orb を書いてみた (zenn.dev) -
CircleCI Developer Hub - bufferings/pixela
– Pixela の Increment/Decrement/Put をする CircleCI Orb を作った - Mitsuyuki.Shiiba (hatenablog.com) -
CircleCI Developer Hub - yutagoto/emojicode
– emojicodeのCircleCI Orbを作った - DEV Community -
CircleCI Developer Hub - autify/mobile
– Advent Calendar駆動開発でAutifyのCircleCI Orbを作りました - Qiita -
CircleCI Developer Hub - sogaoh/orb-tfenv
– 思い立って70分で tfenv の CircleCI Orb を作った (zenn.dev) -
CircleCI Developer Hub - inokappa/aws-sg-white-list-circleci-ip
– (俺の Orbs) AWS セキュリティグループの Ingress ルールに CircleCI の IP を追加 or 削除する Orbs を作りました - ようへいの日々精進XP (hateblo.jp) -
CircleCI Developer Hub - masutaka/pushover
– pushover orb のメンテナーになった / マスタカの ChangeLog メモ (masutaka.net)
– CircleCI の orb を fork して PR を送る前の動作確認方法 / マスタカの ChangeLog メモ (masutaka.net) -
CircleCI Developer Hub - masutaka/tfupdate
– tfupdate orb の circleci/orb-tools を v8.27.5 から v10.0.3 にアップデートした / マスタカの ChangeLog メモ (masutaka.net) -
CircleCI Developer Hub - inokappa/ecs-deploy-install
– ecs-deploy をインストールする CircleCI orbs を作ってリリースしました - ようへいの日々精進XP (hateblo.jp) -
CircleCI Developer Hub - medpeer/rails
– CircleCIのYAMLを短く書けるRails Orbを作りました - メドピア開発者ブログ (medpeer.co.jp) -
CircleCI Developer Hub - sue445/ruby-orbs
– circleci-ruby-orbs v1.5.0をリリースした - くりにっき (hatenablog.com)
– circleci-ruby-orbs v1.4.0をリリースした - くりにっき (hatenablog.com) -
CircleCI Developer Hub - agileware-jp/redmine-plugin
– agileware-jp/redmine-plugin orb実装詳解 - hanachin temporary (hateblo.jp) -
CircleCI Developer Hub - sue445/codeclimate
– Code Climate Test Reporter用のCircleCI Orbsを作った - くりにっき (hatenablog.com) -
CircleCI Developer Hub - r3yamauchi/customize-uploader
– Circle CI で kintone カスタマイズをアップロードする Orbs を作ってみよう|R3 Cloud Journey (r3it.com) -
CircleCI Developer Hub - yutagoto/todays-imas-idol
– 今日誕生日のアイドルを出力するCircleCI orbをつくったお話 | by ごっちの日記 | Medium -
CircleCI Developer Hub - ngs/danger
– macOS 環境のための CircleCI Orbs を公開しました - Atsushi Nagase (ngs.io)
開発バージョン(dev/alpha)/非公開/Private Orb
その他 開発ノウハウ等
- circleci/orb-tools を使った Orb のリリースフローが良く出来ていたので紹介する / マスタカの ChangeLog メモ (masutaka.net)
- CircleCI Orbs開発完全ガイド 2019年度版|Seiji Takahashi - timakin|note
- 俺的CircleCI Orbs開発ベストプラクティス - くりにっき (hatenablog.com)
- CircleCI Orbsにコントリビュートしました - あしたから本気だす (hatenablog.jp)
CircleCIブログ
- Orbsを自動的にビルド、テスト、デプロイするためのワークフローを作成する:第 1 部 (circleci.com)
- Orbsを自動的にビルド、テスト、デプロイするためのワークフローを作成する:第 2 部 (circleci.com)