概要
ワークフローで使用するアクションは、以下の場所で定義できます。
- ワークフロー ファイルと同じリポジトリ
- ワークフローへのアクセスを許可するように構成された、同じエンタープライズ アカウント内の内部リポジトリ
- すべてのパブリック リポジトリ
- Docker Hubで公開された Docker コンテナイメージ
GitHub Marketplace は、GitHub コミュニティによって作成されたアクションを検索するための一元的な場所です。
同じリポジトリからのアクションの追加
ワークフロー ファイルがアクションを使用するのと同じリポジトリでアクションが定義されている場合、そのアクションはワークフロー ファイル内の {owner}/{repo}@{ref}
または ./path/to/dir
構文を使用して参照できます。
リポジトリ ファイル構造の例:
|-- hello-world (repository)
| |__ .github
| └── workflows
| └── my-first-workflow.yml
| └── actions
| |__ hello-world-action
| └── action.yml
ワークフロー ファイルの例:
jobs:
build:
runs-on: ubuntu-latest
steps:
# This step checks out a copy of your repository.
- uses: actions/checkout@v3
# This step references the directory that contains the action.
- uses: ./.github/actions/hello-world-action
この action.yml
ファイルは、アクションのメタデータを提供するために使用されます。 このファイルの内容については、「GitHub Actions のメタデータ構文」をご覧ください。
別のリポジトリからのアクションの追加
アクションがワークフロー ファイルとは異なるリポジトリで定義されている場合は、ワークフロー ファイル内で {owner}/{repo}@{ref}
構文を使用してアクションを参照できます。
アクションはパブリック リポジトリに格納する必要がありますまたはワークフローへのアクセスを許可するように構成されている内部リポジトリに格納する必要があります。 詳しくは、「アクションとワークフローを企業と共有する」をご覧ください。
jobs:
my_first_job:
steps:
- name: My first step
uses: actions/setup-node@v3
Docker Hubでのコンテナの参照
あるアクションが Docker Hub の公開された Docker コンテナー イメージで定義されている場合は、そのアクションはワークフロー ファイル内で docker://{image}:{tag}
構文を使用して参照する必要があります。 コードとデータを保護するには、ワークフローで使用する前に Docker HubからのDocker コンテナイメージの整合性を確認することを強くおすすめします。
jobs:
my_first_job:
steps:
- name: My first step
uses: docker://alpine:3.8
Docker アクションの例については、Docker-image.yml ワークフローと「Docker コンテナーのアクションを作成する」をご覧ください。
カスタムアクションにリリース管理を使用する
コミュニティアクションの作者は、タグ、ブランチ、または SHA 値を使用してアクションのリリースを管理するオプションがあります。 他の依存関係と同様に、アクションの更新を自動的に受け入れる際のお好みに応じて、使用するアクションのバージョンを指定する必要があります。
ワークフローファイルでアクションのバージョンを指定します。 リリース管理へのアプローチに関する情報、および使用するタグ、ブランチ、または SHA 値を確認するには、アクションのドキュメントを確認してください。
注: サードパーティのアクションを使用する場合は、SHA 値を使用することをお勧めします。 詳細については、「GitHub Actions のセキュリティ強化」を参照してください。
タグの使用
タグは、メジャーバージョンとマイナーバージョンの切り替えタイミングを決定するときに役立ちますが、これらはより一過性のものであり、メンテナから移動または削除される可能性があります。 この例では、v1.0.1
としてタグ付けされたアクションをターゲットにする方法を示しています。
steps:
- uses: actions/javascript-action@v1.0.1
SHA の使用
より信頼性の高いバージョン管理が必要な場合は、アクションのバージョンに関連付けられた SHA 値を使用する必要があります。 SHA は不変であるため、タグやブランチよりも信頼性が高くなります。 ただし、このアプローチは、重要なバグ修正やセキュリティ更新プログラムなどのアクションの更新を自動的に受信しないことを意味します。 短縮された値ではなく、コミットの完全な SHA 値を使う必要があります。 SHA を選択するときは、アクションのリポジトリからであり、リポジトリ フォークではないことを確認してください。 この例では、アクションの SHA をターゲットにしています。
steps:
- uses: actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f
ブランチの使用
アクションのターゲットブランチを指定すると、そのブランチに現在あるバージョンが常に実行されます。 ブランチの更新に重大な変更が含まれている場合、このアプローチは問題を引き起こす可能性があります。 この例では、@main
という名前のブランチを対象とします。
steps:
- uses: actions/javascript-action@main
詳しくは、「カスタム アクションについて」を参照してください。
アクションで入力と出力を使用する
多くの場合、アクションは入力を受け入れたり要求したりして、使用できる出力を生成します。 たとえば、アクションでは、ファイルへのパス、ラベルの名前、またはアクション処理の一部として使用するその他のデータを指定する必要がある場合があります。
アクションの入力と出力を確認するには、リポジトリのルート ディレクトリの action.yml
または action.yaml
を確認します。
この action.yml
の例では、inputs
キーワードによって file-path
という名前の必須の入力が定義され、何も指定されていない場合に使用される既定値が含まれています。 outputs
キーワードは、結果を配置する場所を示す results-file
という名前の出力を定義します。
name: "Example"
description: "Receives file and generates output"
inputs:
file-path: # id of input
description: "Path to test script"
required: true
default: "test-file.js"
outputs:
results-file: # id of output
description: "Path to results file"
GitHub AE に含まれているアクションを使用する
既定では、GitHub AE の公式の GitHub によって作成されたアクションのほとんどを使用できます。 詳しくは、「GitHub AE でアクションを使用する」を参照してください。
次の手順
GitHub Actions についてさらに学ぶには、「GitHub Actions の重要な機能」をご覧ください。