# ワークフロー

トリガー、構文、高度な機能など、 GitHub Actions ワークフローの概要について説明します。

## ワークフローについて

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

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

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

## ワークフローの基本

ワークフローには、次の基本的なコンポーネントが含まれている必要があります。

1. ワークフローをトリガーする 1 つ以上の *イベント* 。
2. 1 つ以上の *ジョブ*。それぞれが *ランナー* マシンで実行され、一連の 1 つ以上の \_ステップ\_が実行されます。
3. 各ステップは、ユーザーが定義したスクリプトか、アクションを実行でき、ワークフローを簡略化できる再利用可能な拡張機能です。

これらの基本的なコンポーネントについて詳しくは、「[GitHub Actionsについて](/ja/enterprise-server@3.22/actions/get-started/understand-github-actions#the-components-of-github-actions)」をご覧ください。

![ランナー 1 をトリガーしてジョブ 1 を実行し、それによってランナー 2 がジョブ 2 の実行をトリガーするイベントの図。 各ジョブは複数のステップに分割されています。](/assets/images/help/actions/overview-actions-simple.png)

## ワークフロー トリガー

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

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

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

ワークフロー トリガーは、`on` キーを使って定義されます。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#on)」をご覧ください。

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

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

各ワークフロー実行では、そのイベントに関連付けられたコミット SHA または Git ref に存在するワークフローのバージョンが使用されます。 ワークフローが実行されると、GitHub はランナー環境で `GITHUB_SHA`（コミット SHA）および `GITHUB_REF`（Git ref）環境変数を設定します。 詳しくは、「[変数に情報を格納する](/ja/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables)」をご覧ください。

詳しくは、「[ワークフローをトリガーする](/ja/enterprise-server@3.22/actions/how-tos/write-workflows/choose-when-workflows-run/trigger-a-workflow)」をご覧ください。

## 次のステップ

最初のワークフローをビルドするには、「[サンプル ワークフローの作成](/ja/enterprise-server@3.22/actions/tutorials/create-an-example-workflow)」を参照してください。