概要
ワークフロー テンプレートを使用すると、ワークフローを作成するアクセス許可を持つ Organization 内のすべての人が、より迅速かつ簡単にワークフローを作成できます。 新しいワークフローを作成する場合に、ワークフロー テンプレートを選択すると、ワークフローを作成する作業の一部またはすべてを自動的に行うことができます。 スワークフロー テンプレートは、カスタム ワークフローの構築の出発点として利用することも、そのまま利用することもできます。 これにより、時間を節約できるだけでなく、Organization 全体の一貫性とベスト プラクティスが促進されます。
GitHub には、次の高レベルのカテゴリにすぐに使用できるワークフロー テンプレートが用意されています。
- デプロイ (CD) 。 詳しくは、「GitHub Actions を使った継続的デプロイについて」を参照してください。
- セキュリティ。 詳しくは、「コード スキャンの高度なセットアップの構成」をご覧ください。
- 継続的インテグレーション (CI) 。 詳しくは、「GitHub Actions による継続的インテグレーションについて」を参照してください。
- オートメーション。 Automation ワークフロー テンプレートには、pull request のトリアージや、pull request で変更されたパスに基づくラベルの適用、リポジトリに初めて投稿する人へのあいさつなど、ワークフローを自動化するためのソリューションが用意されています。
Note
ワークフロー テンプレートにはパブリック .github
リポジトリが必要であるため、Enterprise Managed Users では使用できません。
ワークフロー テンプレートの作成
組織の_パブリック_ .github
リポジトリへの書き込みアクセス権限を持つユーザーは、ワークフロー テンプレートを作成できます。 その後、ワークフローを作成するアクセス許可を持つ組織のメンバーはそれを使用できます。
Note
ワークフロー テンプレート間の重複を避けるために、ワークフロー内から再利用可能なワークフローを呼び出すことができます。 これにより、ワークフローの管理を容易にできます。 詳しくは、「ワークフローの再利用」を参照してください。
この手順では、ワークフロー テンプレートとメタデータ ファイルを作成する方法を示します。 メタデータ ファイルには、ユーザーが新しいワークフローを作成するときに、ワークフロー テンプレートがどのように表示されるかが記述されています。
-
それがまだない場合は、組織で
.github
という名前の新しい_パブリック_ リポジトリを作成します。 -
workflow-templates
という名前のディレクトリを作成します。 -
workflow-templates
ディレクトリ内に新しいワークフロー ファイルを作成します。リポジトリの既定のブランチを参照する必要がある場合は、
$default-branch
プレースホルダーを使用できます。 ワークフローが作成されるとき、プレースホルダーはリポジトリの既定のブランチの名前に自動的に置き換えられます。たとえば、
octo-organization-ci.yml
という名前のこのファイルは、基本的なワークフローを示しています。YAML name: Octo Organization CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run a one-line script run: echo Hello from Octo Organization
name: Octo Organization CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run a one-line script run: echo Hello from Octo Organization
-
workflow-templates
ディレクトリ内にメタデータ ファイルを作成します。 メタデータ ファイルは、ワークフロー ファイルと同じ名前にする必要がありますが、.yml
拡張子の代わりに、.properties.json
を付ける必要があります。 たとえば、octo-organization-ci.properties.json
という名前のこのファイルには、octo-organization-ci.yml
という名前のワークフロー ファイルのメタデータが含まれます。JSON { "name": "Octo Organization Workflow", "description": "Octo Organization CI workflow template.", "iconName": "example-icon", "categories": [ "Go" ], "filePatterns": [ "package.json$", "^Dockerfile", ".*\\.md$" ] }
{ "name": "Octo Organization Workflow", "description": "Octo Organization CI workflow template.", "iconName": "example-icon", "categories": [ "Go" ], "filePatterns": [ "package.json$", "^Dockerfile", ".*\\.md$" ] }
-
name
- 必須。 ワークフローの名前。 これは、使用可能なワークフローの一覧に表示されます。 -
description
- 必須。 ワークフローの説明。 これは、使用可能なワークフローの一覧に表示されます。 -
iconName
- 省略可能。 ワークフローの一覧に表示されるワークフローのアイコンを指定します。iconName
には次のいずれかの種類を指定できます。workflow-templates
ディレクトリに格納されている SVG ファイル。 ファイルを参照するには、その値がファイル拡張子のないファイル名である必要があります。 たとえば、example-icon.svg
という名前の SVG ファイルはexample-icon
として参照されます。- GitHub の Octicons セットからのアイコン。 octicon を参照するには、値を
octicon <icon name>
にする必要があります。 たとえば、「octicon smiley
」のように入力します。
-
categories
- 省略可能。 ワークフローが表示されるカテゴリを定義します。 次の一覧からのカテゴリ名を使用できます。- starter-workflows リポジトリの一般的なカテゴリ名。
- linguist リポジトリの一覧からの Linguist 言語。
- starter-workflows リポジトリの一覧からのサポートされている技術スタック。
-
filePatterns
- 省略可能。 ユーザーのリポジトリのルート ディレクトリに、定義された正規表現に一致するファイルがある場合、そのワークフローを使用できるようにします。
-
別のワークフロー テンプレートを追加するには、同じ workflow-templates
ディレクトリにファイルを追加します。
次のステップ
GitHub Actions についてさらに学ぶには、「ワークフロー テンプレートの使用」をご覧ください。