2
Help us understand the problem. What are the problem?

posted at

updated at

CircleCIのOrbの自作

イベントページ

下のイベントで行ったハンズオンの記録です。

【オンライン】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を有効にする

スクリーンショット_2022-04-07_19.40.53.png

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 の連携を有効にする。

実行結果をみる
スクリーンショット_2022-04-07_19.40.53.png

スクリーンショット_2022-04-07_19.27.09.png

まとめ

  • 書き方の基本は workflow のない config.yml
  • パラメータを受け取るなどして再利用が可能。
  • OrbからOrbも呼び出せる(スライドの今どきの「Orb プロジェクト構成」も参照)。組織のノウハウを作ってほしい

補足

create に —private オプションをつけると、組織(社内、個人)のみの間で使える
参考動画 https://www.youtube.com/watch?v=r_lFUlLc3Ag

カテゴリも登録できる。Orb一覧で絞り込みに使われる。
https://circleci.com/developer/ja/orbs

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?