一連の処理の流れを記載します。これはトップレベルの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