Orbs、ジョブ、ステップ、ワークフロー
ここでは、ジョブ、ステップ、ワークフローに加え、Orbs に使用される新しい .circleci/config.yml
キーの概要について説明します。
Orbs の概要
Orbs は、名前に基づいてインポートするか、インラインで設定するコンフィグのパッケージです。コンフィグを簡略化し、プロジェクト内またはプロジェクト間でコンフィグを共有および再利用するために使用されます。 コンフィグで Orbs を使用する方法と Orb 設計の概要については、「Orbs を使う」を参照してください。
ジョブの概要
ジョブはステップの集まりです。 ジョブ内のステップはすべて 1単位として実行され、その際にプランから CircleCI コンテナが 1つ消費されます。
ジョブとステップはきめ細かく制御できます。ワークフローのフレームワークが提供され、各フェーズでのステータスを確認できるため、高頻度のフィードバックが可能になります。 下図はジョブ間のデータフローを表したものです。 ワークスペースは、同じワークフロー内のジョブ間でデータを維持します。 キャッシュは、異なるワークフロービルドにある同じジョブ間でデータを維持します。 アーティファクトは、ワークフローの終了後にデータを維持します。
2.0 のジョブは、最近使用された machine
Executor の実行を再利用できる machine
Executor、テストや必要なサービス (データベースなど) を実行するように Docker コンテナを構成できる docker
Executor、または macos
Executor を使用して実行できます。
docker
Executor を使用する場合、起動するコンテナは、docker:
キーの下にリストされるコンテナイメージで指定されます。 docker
Executor と共に任意のパブリック Docker イメージも使用できます。
docker
Executor と machine
Executor の用途と違いについては、コンテナイメージの指定に関するドキュメントを参照してください。
ステップの概要
ステップは、ジョブ中に実行される実行可能なコマンドの集まりです。コードをチェックアウトするには checkout:
キーを指定する必要があります。また、run:
キーを使用すると、複数行にわたる任意のシェルコマンドスクリプトを追加できます。 run:
キーに加えて、save_cache:
、restore_cache:
、deploy:
、store_artifacts:
、store_test_results:
、add_ssh_keys
などのキーがステップの下にネストされます。
インポートした Orb を使用した設定例
version: 2.1
orbs:
aws-s3: circleci/aws-s3@1.0.0 #circleci 名前空間に s3 orb をインポートします
workflows:
build-test-deploy:
jobs:
- deploy2s3:
steps:
- aws-s3/sync: #s3 orb で宣言されている sync コマンドを呼び出します
from: .
to: "s3://mybucket_uri"
overwrite: true
並列ジョブの設定例
2.0 .circleci/config.yml
ファイルの例を以下に示します。
version: 2
jobs:
build:
docker:
- image: circleci/<language>:<version TAG>
steps:
- checkout
- run: <command>
test:
docker:
- image: circleci/<language>:<version TAG>
steps:
- checkout
- run: <command>
workflows:
version: 2
build_and_test:
jobs:
- build
- test
上記は並列ジョブワークフローの例です。処理時間を短縮するために、build
ジョブと test
ジョブを並列で実行しています。 並列実行、順次実行、および手動承認のワークフローによってジョブを組織化する詳しい方法については「ジョブの実行を Workflow で制御する」を参照してください。