前のパートに戻る 完了して次のパートへ  

  1-4 CircleCIを実行する

本パートでは、CircleCIの処理を実行します。

config.ymlの作成


前パートの最後では、以下の画面が表示されたかと思います。

黒い部分に表示されているのは、CircleCIの処理内容を定義するためのconfig.ymlというファイルの内容です。

この内容はブラウザから編集できるので、いったん全て削除して、以下の内容に書き換えてください。

なお、config.ymlをブラウザで編集するのは、初回の今回限りです。

今後は、プログラムのコードなどと同様、エディタで編集していきます。

YAMLについて

CircleCIでは、その処理内容をYAMLと呼ばれる形式で記述します。

YAMLファイルの拡張子は、ymlまたはyamlとなります。

以下は、YAMLを初めて見る人向けの説明となるので、YAMLが読める人は次の見出しの「version」に進んでください。

YAMLの読み方を知らない人は、JSONに置き換えると、理解しやすいと思います。

もし、上記のYAMLをJSONで表現したとすると、以下になります。

JSONと比較した場合のYAMLのおもな特徴は、以下になります。

  • キーを""で囲まない
  • 値が文字列であっても、""で囲む必要は無い
  • インデントが必須
  • #を使ってコメントを書ける
  • 配列を-で表す

おそらく「配列を-で表す」というのが一番わかりづらい点では無いかと思います。

これをもう少し例を交えて解説すると、

JSONでは、

といった形式が、YAMLでは

となります。

すぐには感覚をつかみづらいかもしれませんが、何度も見ていくうちに慣れてくると思います。

version

ここからは、config.ymlに新しく記述した内容に関して解説していきます。

versionは、CircleCIのバージョンです。

22.02.1のいずれかが使えます。

2.1が、最も多くの機能を使えるので、本教材では2.1を指定します。

2.1でのみ使える機能をconfig.ymlに記述しているにも関わらず、version2.1以外を指定していると、CircleCIの実行時にエラーとなります。

jobs

jobsでは、ジョブを1つから複数個、定義します。

ここではbuildという名前のジョブを1つだけ定義しています。

CircleCIのジョブとは、最小単位の処理(ステップ)の集合体です。

さらに、CircleCIの処理の全体(ワークフロー)は、1つ以上のジョブで構成されます。

ワークフロー、ジョブ、ステップの関係性は以下の構造となります。

workflow
├── job1
│   ├── step1
│   ├── step2
│   └── step3
├── job2
│   ├── step1
│   ├── step2
│   └── step3
└── job3
    ├── step1
    ├── step2
    └── step3

なお、本教材では最終的に、builddeployという2つのジョブを作っていきます。

docker

CircleCIの処理は、Dockerコンテナ上で処理されます。

使用するDockerイメージは、imageで指定します。

ここでは、CircleCIが公式に用意しているPHPとnode.jsのDockerイメージを使用するよう指定しています。

steps

stepsには、1つ以上の処理を定義します。

runには、1つの処理の内容を定義します。

ここでは、シェルスクリプトのコマンドechoを使用して、Hello Worldを表示する処理を実行しています。

シェルスクリプトの基本的なコマンドについて、より詳しく知りたい方は以下の記事などを参考にしてください。

なお、ここでのrunは省略形の記法となっているのですが、省略形ではない記法については、後ほど別のパートで解説します。

config.ymlの実行


画面に表示されたconfig.ymlを修正したら、Start Buildingボタンを押してください。

すると、以下の画面が表示されます。

  • あなたのGitHubリポジトリにcircleci-project-setupという名前のブランチが作られること
  • CircleCIの処理が実行されること

が説明されています。

問題無いので、このままAdd Configボタンを押してください。

なお、Add Configボタンを押した後に、さらに以下の画面が表示された場合は、その画面の右上のバツボタンを押してください。

すると、以下のPipelinesメニューの画面が表示されたかと思います。

この画面からの続きは、次のパートで実施します。

以上で、本パートは終了です。

議論

0 質問

このコースの評価は?