Orb で構成をパッケージ化、配信、再利用

/ôrb/ 名詞

再利用可能な 1 行のコードに、コマンド、Executors、ジョブを凝縮することができます。

Orb を活用するメリット

Orb は、再利用可能なコード スニペットです。Orb を使用すると、繰り返しのプロセスを自動化でき、手早くプロジェクトをセットアップできます。サードパーティ製ツールとの連携も容易になります。

  • プロジェクト構成の時間を短縮
  • 組織全体を効率化
  • サードパーティ製品との連携を簡素化
Orb の使用方法

Orb を使用する

Orb からビルド済みのコマンド、ジョブ、Executors を設定ファイルにインポートすれば、すべてをゼロから揃える必要はなくなり、時間の節約につながります。

または

Orb を作成する

ニーズに合う Orb がまだない場合は、CircleCI の「ベスト プラクティス」「概要」 ガイドを参考に、独自の Orb を作成できます。CircleCI 環境でのテストとデプロイを自動化した Orb 開発キットをご用意しているので、作成プロセスでつまずくことはありません。プライベート Orb を作成すれば、組織内のプロジェクトだけで構成内容を共有することも可能です。作成した Orb の追跡、保存、更新は、CircleCI アプリケーションから簡単に行えます。

Orb のユース ケース

プロジェクトの構成時間を短縮し、サードパーティ製品との連携を簡単にセットアップしましょう。

Orb のユース ケース

Kubernetes と連携する

Kubernetes へのデプロイを自動化できます。Orb を使用すれば、構成済みの操作を CI/CD パイプラインから直接実行できます。

Orb のユース ケース

Amazon Web Services と連携する

AWS との連携に必要なものがすべて揃っています。設定不要の連携機能によって、ソース コードからランタイムに至る開発プロセス全体を管理できます。

Orb のユース ケース

DevSecOps

セキュリティを CI/CD パイプラインに組み込む

CircleCI は脆弱性検査、シークレット管理、ポリシー準拠のためのツールと統合されています。

Orb のユース ケース

デプロイ

CircleCI Orbs でデプロイを自動化する

AWS Lambda、GCP、Kubernetes などのデプロイ サービスと、設定要らずで手早く連携できます。

Cory Virok 氏
「既に Orbs や CircleCI を活用されているお客様が数多くいらっしゃったので、 当社の Orb をお客様がスムーズに取得・導入できるかどうかはそれほど心配し ていませんでした。実際、追加の作業は一切不要で、とても簡単に利用してい ただけました。」

Cory Virok 氏
Rollbar | 共同創業者兼 CTO

Kelsey Steinbeck
「当社では、ほぼすべてのワークフローが同じ大きなパターンに沿っているため 、その仕様を一元的に定義できるのは、実に便利な機能でした。すべてのリポ ジトリを 1 つの Orb でセットアップできるので、更新するときも 1 か所で変 更するだけで済むのです。これによって、変更のロールアウトにかかる時間が 大幅に短縮され、数日の節約が可能になりました。」

Kelsey Steinbeck
Indigo | ソフトウェア エンジニアリング ディレクター

コマンド、Executors、ジョブを再利用

Orb にはコマンド、Executors、ジョブを定義できるため、よく利用する構成内容を 1 行のコードにまとめ、再利用することが可能です。

    
      
          version: 2.1

          description: 初回のビルドに役立つシンプルな方法を記述した Orb
          
          commands:
            circleci-env-highlights:
              steps:
              - run:
                  command: |-
                    echo "TRIGGERER: ${CIRCLE_USERNAME}"
                    echo "BUILD_NUMBER: ${CIRCLE_BUILD_NUM}"
                    echo "BUILD_URL: ${CIRCLE_BUILD_URL}"
                    echo "BRANCH: ${CIRCLE_BRANCH}"
                    echo "RUNNING JOB: ${CIRCLE_JOB}"
                    echo "JOB PARALLELISM: ${CIRCLE_NODE_TOTAL}"
                    echo "CIRCLE_REPOSITORY_URL: ${CIRCLE_REPOSITORY_URL}"
                  name: CircleCI の実行時環境変数の一部を表示する

            hello-triggerer:
              parameters:
                to:
                  default: ${CIRCLE_USERNAME}
                  type: string
              steps:
              - run: echo "Hello << parameters.to >>"

            system-info:
              steps:
              - run:
                  command: |-
                    echo "uname:" $(uname -a)
                    echo "arch: " $(arch)
                  name: Show system information
          
          executors:
            default:
              docker:
              - image: circleci/buildpack-deps:<< parameters.tag >>
              parameters:
                tag:
                  default: curl-browsers
                  type: string
          
          jobs:
            hello-build:
              executor: default
              steps:
              - hello-triggerer
              - circleci-env-highlights
              - system-info