Skip to content
Latchkey

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 と同じように参照されます。

A composite 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 が必要です。
  • ジョブ全体ではなくステップを再利用するために使います。

関連ガイド