設定ファイル:.circleci/config.yml
次にCircleCIの設定方法を学んでいきましょう。次の設定はCircleCIで"Hello World!"と表示させるだけの設定です。
version: 2.0
jobs:
build:
docker:
- image: circleci/node:4.8.2
steps:
- checkout
- run: echo "Hello World!"
たったこれだけの設定ですが、アプリケーションのコンパイルやテストはなくてもCircleCIはちゃんとビルドとして処理してくれます。ユーザーが設定したようにビルドを実行する、2.0の柔軟さがこの設定でも垣間見えます。
YAMLについて
YAMLは主に配列、ハッシュ、文字列や数字を表すスカラの3つデータ構造を使って記述していきます。
配列はハイフンと半角スペースを使います。
- foo - bar => ["foo", "bar"]
ハッシュはコロンと半角スペースを使います。
foo: bar
=> {"foo":"bar"}
配列とハッシュをネストすることもできます。
jobs:
build:
docker:
- image: circleci/node:4.8.2
=> {"jobs": {
"build": {
"docker": [{"image": "circleci/node:4.8.2"}]
}
}
}
YAMLは奥が深いデータ構造です。詳しく知りたい方はこの連載を読むことをおすすめします。また、.circleci/config.ymlがちゃんと書けているか確かめたい時はオンラインのYMALパーサーなどを使うとよいでしょう。
1つずつ説明していきます。まず、前提としてCircleCIの設定のほとんどは.circleci/config.ymlというYAML形式のファイルに書きます。.circleci/config.ymlをプロジェクト配下に置くと、CircleCIはここから設定を読み込んで、それに従ってビルドを実行していきます。
-
version: 2:この設定ファイルがCircleCI 2.0対応ということを宣言しています。 -
jobs:ジョブ(詳しくは後述)の設定をここ以降に書きます。 -
build:buildというジョブを設定していきます。 -
docker:ビルドで使うDockerイメージを指定します。前述したようにCircleCIはDockerをネイティブサポートしているので、好きなDockerのイメージを使ってビルドの設定ができます。 -
steps:ステップとは実際に実行されるコマンドやビルドのアクションです。それらをsteps配下に書いていくことでビルドの設定をしていきます。
ステップについて
ステップには大きくわけて、ユーザーが任意のコマンドを実行できるステップと、CircleCIがあらかじめ用意しているビルトインステップがあります。前者はすべてrun:ステップで書きます。
上記の例だと、シェルでecho "Hello World!"と実行することができます。詳しくは後述しますが、CircleCIの基本はこのrunステップを組み合わせてビルドの設定を作っていきます。
checkoutはビルドインステップの一つです。GitHubやBitbucketなどのVCSからコードをダウンロードします。ビルドインステップはCircleCIがあらかじめ用意したCI/CDをする上で必須の処理をまとめたものです。すべてのステップはここから確認できます。よく使うステップについては本記事の中で紹介していくので、任意コマンドを実行するためのrunステップとビルトインステップの2種類があることを覚えておいてください。
