Skip to main content

Workflows

Get a high-level overview of GitHub Actions workflows, including triggers, syntax, and advanced features.

About workflows

ワークフローとは、1 つ以上のジョブを実行する構成可能な自動化プロセスです。 ワークフローは、リポジトリにチェックインされる YAML ファイルによって定義され、リポジトリ内のイベントによってトリガーされたときに実行されます。また、手動でトリガーしたり、定義されたスケジュールでトリガーしたりすることもできます。

ワークフローは、リポジトリ内の .github/workflows ディレクトリで定義されます。 1 つのリポジトリで複数のワークフローを使用でき、それぞれで次のような異なるタスクのセットを実行できます。

  • Pull request のビルドとテスト
  • リリースが作成される度にアプリケーションを配置する
  • 新しい issue が開かれる度にラベルを追加する

Workflow basics

A workflow must contain the following basic components:

  1. One or more events that will trigger the workflow.
  2. One or more jobs, each of which will execute on a runner machine and run a series of one or more steps.
  3. Each step can either run a script that you define or run an action, which is a reusable extension that can simplify your workflow.

For more information on these basic components, see Understanding GitHub Actions.

Diagram of an event triggering Runner 1 to run Job 1, which triggers Runner 2 to run Job 2. Each of the jobs is broken into multiple steps.

Workflow triggers

ワークフロー トリガーは、ワークフローの実行を引き起こすイベントです。 次のようなイベントがあります。

  • ワークフローのリポジトリ内で発生するイベント
  • GitHub の外部で発生し、GitHub 上で repository_dispatch イベントをトリガーするイベント
  • スケジュールされた時刻
  • マニュアル

たとえば、リポジトリの既定のブランチに対してプッシュが行われたときや、リリースが作成されたとき、またはイシューが開かれたときに実行するようにワークフローを構成できます。

ワークフロー トリガーは、on キーを使って定義されます。 詳しくは、「GitHub Actions のワークフロー構文」をご覧ください。

ワークフローの実行がトリガーされるには、以下のステップが生じます。

  1. リポジトリでイベントが発生します。 イベントには、コミット SHA と Git ref が関連付けられています。
  2. GitHub は、リポジトリのルートの .github/workflows ディレクトリで、イベントの関連付けらたコミット SHA または Git ref に存在するワークフロー ファイルを検索します。
  3. トリガーするイベントと一致する on: 値を持つすべてのワークフローに対して、ワークフロー実行がトリガーされます。 一部のイベントでは、実行のために、リポジトリの既定のブランチにワークフロー ファイルが存在している必要もあります。

各ワークフロー実行では、そのイベントに関連付けられたコミット SHA または Git ref に存在するワークフローのバージョンが使用されます。 ワークフローが実行すると、GitHub によってランナー環境で GITHUB_SHA (コミット SHA) と GITHUB_REF (Git ref) の環境変数が設定されます。 詳しくは、「変数に情報を格納する」をご覧ください。

For more information, see ワークフローのトリガー.

Next steps

To build your first workflow, see Creating an example workflow.