Skip to main content
ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

Using jobs in a workflow

Use workflows to run multiple jobs.

ノート: 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_jobmy_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が始まり、job3job1job2が完了するまで待機します。

つまり、この例のジョブは逐次実行されるということです。

  1. job1
  2. job2
  3. job3

例: 依存対象のジョブの成功を必要としない

jobs:
  job1:
  job2:
    needs: job1
  job3:
    if: ${{ always() }}
    needs: [job1, job2]

この例では、job3は条件式のalways() を使っているので、job1job2が成功したかどうかにかかわらず、それらのジョブが完了したら常に実行されます。 詳しい情報については「」を参照してください。