CircleCIの導入
CircleCIとは
GitHub上のリポジトリの更新を契機として、処理実行が可能なCI/CDサービスです。リポジトリ上のに配置した.circleci/config.yml
に則り、CircleCIが処理を行います。CircleCIの概要に関しては、合わせて以下もご覧下さい。
継続的インテグレーションのプロダクトと機能 - CircleCI
使用した際の所感としては、SaaS型でJenkinsの様に自前でサーバを立てる必要がなく、手軽に導入できるのがとても良かったです。
導入手順
以下URIよりCircleCIのSign upを行います。その際に、
Sign up with GitHub
を選択し、GitHubとの紐付けを行います。
Signup - CircleCI下図の通り、
Set Up Project
ボタンを押下し、既存のリポジトリをCircleCIに紐付けます。
下図の通り、
Start Building
ボタンを押下し、続いてAdd Config
ボタンを押下します。 すると、該当のリポジトリに.circleci/config.yml
ファイルが追加された、circleci-project-setup
ブランチが作成されます。
CIrcleCIがリポジトリの更新を検知し、
.circleci/config.yml
に則った処理を実行します。成功すると下図の通り、STATUSがSUCCESS
になります。
ハンズオン
設定ファイルの変更
上述の導入手順で追加した.circleci/config.yml
を、下図の通りGitHub上で直接編集します。
以下をコピペしcommit changes
ボタンを押下して下さい。
version: 2.1 jobs: # ジョブ job01: docker: # Executor - image: buildpack-deps:trusty steps: # ステップ - run: echo "job01" job02: docker: - image: buildpack-deps:trusty steps: - run: echo "job02" workflows: # ワークフロー version: 2.1 workflow01: jobs: - job01 - job02: requires: - job01
結果確認
CIrcleCIがリポジトリの更新を検知し、
workflow01
が実行さた様子が確認できます。workflow01
を押下すると、job01
,job02
の順にジョブが実行さた様子が確認できます。job01
を押下すると、ステップが実行さた様子が確認できます。
解説
用語整理
ステップ, ジョブ, ワークフロー
上記に関して、それぞれ下図の関係になります。
- ステップ: シェルコマンドなどの、実行可能な1つの処理を指します。
- ジョブ: ステップの集まりを指します。依存関係が無いジョブは、有料プランでは並列で実行されます。
- ワークフロー: ジョブの集まりを指します。ジョブの実行に関する制御を行います。
合わせて以下もご覧下さい。
Orbs、ジョブ、ステップ、ワークフロー - CircleCI
Executor
ジョブ毎の処理を実行する環境を指します。以下より選択が可能です。
- docker
- machine
- macos(有料プランのみ)
合わせて以下もご覧下さい。
Executor とイメージ - CircleCI
Executor タイプの選び方 - CircleCI
設定ファイル詳細
ステップ
シェルコマンドの実行
以下の通り、run: <コマンド>
という記載をすることで、実行が可能です。
steps: # ステップ - run: echo "job01"
ジョブ
Executorの指定
以下の通り、docker
を指定しています。使用するイメージに関して、- image: <イメージ名>
で指定可能です。
job01: docker: # Executor - image: buildpack-deps:trusty
指定可能なイメージに関して、以下をご覧ください。
Pre-Built CircleCI Docker Images - CircleCI
ワークフロー
ジョブの実行順序の制御
以下の通り、requires:
を記載することで、ジョブの依存関係を指定可能です。
- job02: requires: - job01