イベントページ
下のイベントで行ったハンズオンの記録です。
【オンライン】CircleCI コミュニティもくもく会 #13【今夜、Orbを作ってみよう】 (2022/04/07 18:30〜)
TL;DR
- Orb自作のハードルは低い。config.ymlさえ書ければすぐ作れる
- Orbにすることで可読性と再利用性が向上
- 組織内だけで共有する仕組みも提供している
対象
Circle CIをすでに使ったことがある人。
以下を前提とする。
- GitHub、CircleCIのアカウントを持っている
- GitHubとCircleCIの連携がすでに済んでいる
-
.circleci/config.yml
までは書いたことがある
環境設定
CircleCIのプロフィールページのサイドメニューでOrganization settings**移動する。
Security>Orb Security Settings で未公認のorbを有効にする
CircleCI の CLI をインストールする
mac の場合は Homebrew。
それ以外の環境は公式ドキュメントを参照。
% brew install circleci
CircleCI の API キーを作成する。CircleCI のプロフィールページで作成し、コピーしておく。
CircleCI CLIの設定を行う。API キーを聞かれるので、先ほどのキーを貼り付ける。
% circleci setup
namespaceを作成する
% circleci namespace create <name> github <name>
サンプルプロジェクトの複製
下のGitHubレポジトリを fork し、ローカルに clone。
https://github.com/mayoct/CCI-Hello-Orb
Orb作成
orbを作成する
% circleci orb create <name>/hello
サンプルプロジェクトのフォルダに移動し、validate をかける
% circleci orb validate ./orb.yml
Orb at `./orb.yml` is valid.
orbを公開する
% circleci orb publish ./orb.yml <name>/hello@dev:alpha
バージョン番号(@以降)を数字にすると世界中からアクセスできるので注意。逆に dev だと開発中になり、90日経過すると自動で消える。
リストコマンドで確認
% circleci orb list <name> --uncertified
Orbs found: 1. Includes all certified and uncertified orbs.
<name>/hello (Not published)
動作テスト
.circle/config.yml の4行目を自分のものに書き換える
version: 2.1
orbs:
myorb: **<name>**/hello@dev:alpha
workflows:
hello_places_workflow:
jobs:
- myorb/hello_tokyo
- myorb/hello_osaka
- hello_fukuoka
jobs:
hello_fukuoka:
executor: myorb/hello_executor
steps:
- checkout
- myorb/hello_generic_cmd:
placeName: "Fukuoka"
コミットしてGitHubにpush
動作確認
Circle CIの画面を開く。
Projects ページから先ほど作った Hello-CircleCI の連携を有効にする。
まとめ
- 書き方の基本は workflow のない config.yml。
- パラメータを受け取るなどして再利用が可能。
- OrbからOrbも呼び出せる(スライドの今どきの「Orb プロジェクト構成」も参照)。組織のノウハウを作ってほしい
補足
create に —private
オプションをつけると、組織(社内、個人)のみの間で使える
参考動画 https://www.youtube.com/watch?v=r_lFUlLc3Ag
カテゴリも登録できる。Orb一覧で絞り込みに使われる。
https://circleci.com/developer/ja/orbs