4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CircleCIのOrbの自作

Last updated at Posted at 2022-04-07

イベントページ

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

【オンライン】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

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?