GitHub Actions の composite action とは?
composite action は複数のステップを 1 つの action にパッケージ化し、コマンドのシーケンスをコピーせずに再利用できるようにします。
workflow 全体ではなく、いくつかのステップを再利用したいことがあります。composite action を使うと、run と uses のシーケンスを 1 つの uses: 呼び出しにまとめられ、すべて YAML で定義できます。
それは何か
composite action は、runs: ブロックに using: composite とステップのリストを持つ action です。action.yml ファイルに存在し、他の action と同じように参照されます。
# action.yml
name: Setup project
runs:
using: composite
steps:
- run: npm ci
shell: bash
- run: npm run build
shell: bashどう動くか
workflow が composite action を使うと、まとめられたステップがランナー上でインラインに実行されます。各 run ステップは shell を宣言する必要があり、action は input を受け取り output を設定できます。
composite と reusable workflow
composite action は 1 つのジョブ内のステップを再利用し、reusable workflow はジョブ全体を再利用します。共有ロジックがフルパイプラインではなくステップのシーケンスであるときは composite action を選びます。
なぜ重要か
composite action は、ツールのインストールや caching の設定といった一般的なセットアップタスクからコピー&ペーストを取り除き、それらを 1 か所でバージョン管理された状態に保ちます。
関連する概念
composite action は 3 つの action タイプの 1 つで、Marketplace action とよく似た形で input を使って設定されます。
重要なポイント
- composite action はステップを 1 つの action にまとめます。
using: compositeを使い、各runにはshellが必要です。- ジョブ全体ではなくステップを再利用するために使います。