一連の処理の流れを記載します。これはトップレベルのjobs:以下にジョブの名前となる<job-name>:とネストさせ、その中にジョブの環境や具体的な処理といった内容を置きます。
jobs:
build:
executor: alpine
steps:
- run: ':'
例えばこの書き方ではbuildという名前のジョブを定義してます。そしてこれは、alpine環境(executor)で処理(steps)を順番に実行するということを中に書いてます。このexecutorとstepsは必須なので必ず置かなければなりません。
stepsは配列です。上記では1つの処理しか行ってませんが、以下のように複数書くと順番にそれを実行します。
jobs:
build:
executor: alpine
steps:
- run: echo foo
- run: echo bar
- run: echo baz
また、buildという名前のジョブがある時、workflowsは無くても構いません。buildというのは特別なジョブ名で、もしもworkflowsがない場合以下のように解釈されます。
workflows:
workflow:
jobs:
- build
オプショナルな設定
parameters
stepsと同じ階層にparametersを置くことができます。もし極一部だけ値の違うジョブを使いたいい場合、コピペして極一部だけ値を変えるのではなく、パラメーター値として渡してあげることで行っている事は同じ様なジョブ定義を1つだけにできます。
jobs:
build:
parameters
text:
type: string
executor: alpine
steps:
- run: echo << parameters.text >>
ワークフローでジョブを使う時にtextパラメーターを渡して使うことができます。以下は最終的にecho fooが実行されます。
workflows:
foo:
jobs:
- build:
text: foo
working_directory
ジョブを実行する際にいるディレクトリを設定できます。デフォルトでは~/projectという場所にいいます。また、この値はCIRCLE_WORKING_DIRECTORY環境変数に入ります。
shell
ジョブを実行するシェルを設定できます。ジョブを実行するマシンにbashがある場合はそれが、ない場合はshになります。
environment
ジョブ内で使える環境変数を定義できます。
jobs:
build:
environment:
FOO: foo
executor: alpine
steps:
- run: echo $FOO