ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
概要
ワークフローの実行は、1つ以上のジョブで構成されており、それらのジョブはデフォルトでは並列に実行されます。 ジョブを逐次的に実行するには、jobs.<job_id>.needsキーワードを使用して他のジョブに対する依存関係を定義します。
それぞれのジョブは、runs-onで指定されたランナー環境で実行されます。
ワークフローの利用限度内であれば、実行するジョブ数に限度はありません。 詳しい情報についてはGitHubホストランナーの「使用制限と支払い」及びセルフホストランナーの使用制限に関する「セルフホストランナーについて」を参照してください。
ワークフローの実行中で動作しているジョブの一意の識別子を知る必要がある場合は、GitHub Enterprise Server APIが利用できます。 詳しい情報については、「ワークフロージョブ」を参照してください。
Setting an ID for a job
jobs.<job_id>を使い、ジョブに一意の識別子を与えてください。 job_idキーは文字列型で、その値はジョブの設定データのマップとなるものです。 <job_id>は、jobsオブジェクトごとに一意の文字列に置き換える必要があります。 <job_id>は、英字または_で始める必要があり、英数字と-、_しか使用できません。
例: ジョブの作成
この例では2つのジョブが作成されており、そのjob_idの値はmy_first_jobとmy_second_jobです。
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
Setting a name for a job
jobs.<job_id>.nameを使ってジョブの名前を設定してください。この名前はGitHubのUIに表示されます。
Defining prerequisite jobs
jobs.<job_id>.needsを使って、このジョブを実行する前に成功して完了していなければならないジョブを特定してください。 これは文字列型または文字列の配列です。 1つのジョブが失敗した場合、失敗したジョブを続行するような条件式を使用していない限り、そのジョブを必要としている他のジョブはすべてスキップされます。 1つの実行にお互いを必要とする一連のジョブが含まれていた場合、失敗時点以降の依存関係チェーン中のすべてのジョブに失敗が適用されます。
例: 依存対象のジョブの成功を必要とする
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が成功したかどうかにかかわらず、それらのジョブが完了したら常に実行されます。 詳しい情報については「式」を参照してください。

