前提条件
ワークフローにジョブを実装するには、ジョブとはどのようなものかを理解する必要があります。 「GitHub Actions を理解する」を参照してください。
ジョブの ID を設定する
ジョブへの一意の識別子の指定には、jobs.<job_id> を使います。 job_id キーは文字列で、その値はジョブの設定データのマップです。 <job_id> は、jobs オブジェクトに固有の文字列に置き換える必要があります。 <job_id> は文字または _ で始まり、英数字、-、あるいは _ のみを含める必要があります。
例: ジョブを作成する
この例では、job_id 値が my_first_job と my_second_job の 2 つのジョブが作成されました。
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
ジョブの名前を設定する
GitHub UI に表示されるジョブの名前の設定に jobs.<job_id>.name を使用します。
前提条件のジョブを定義する
jobs.<job_id>.needs を使って、このジョブの実行前に正常に完了する必要があるジョブを示します。 文字列型または文字列の配列です。 ジョブが失敗またはスキップされた場合、そのジョブを必要とするすべてのジョブは、そのジョブが継続する条件式を使っていない限り、スキップされます。 互いに必要とする一連のジョブが実行に含まれている場合、失敗またはスキップの時点から、依存関係チェーン内のすべてのジョブに失敗またはスキップが適用されます。 依存しているジョブが成功しなかった場合でもジョブを実行する場合は、jobs.<job_id>.if のalways() 条件式を使用します。
例: 依存ジョブの成功が必要である
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
この例では、job1 が正常に完了してから job2 が始まる必要があり、job3 では job1 と job2 の両方が完了するまで待機します。
つまり、この例のジョブは逐次実行されるということです。
job1job2job3
例: 依存ジョブの成功は必要ではない
jobs:
job1:
job2:
needs: job1
job3:
if: ${{ always() }}
needs: [job1, job2]
この例では、job3 では条件式 always() を使っているので、job1 と job2 が成功したかどうかに関係なく、完了後に常に実行されます。 詳しくは、「ワークフローとアクションで式を評価する」をご覧ください。
マトリックスを使って複数の変数があるジョブを実行する
オペレーティング システムや言語バージョンなどのさまざまな変数を組み合わせてジョブを自動的に実行するには、ワークフローで matrix 戦略を定義します。
詳しくは、「ワークフローでのジョブのバリエーションの実行」をご覧ください。