再利用可能なワークフローと複合アクションについて
再利用可能なワークフローと複合アクションは、ワークフローのコンテンツが重複しないようにする 2 つの方法です。
再利用可能なワークフロー を使用すると、すべてのジョブとステップを含むワークフロー全体を再利用できます。 これは、複数のリポジトリ間で使用する完全な CI/CD プロセスがある場合に特に便利です。 再利用可能なワークフローは、1 つの場所で一元的に管理できますが、組織全体の多くのリポジトリで使用できます。
複合アクション を使用すると、複数のステップを 1 つのアクションにまとめることができます。 その後、このステップのバンドルをワークフロー内のシングル ステップとして実行できます。 これは、複数のワークフローで使用される一連の手順がある場合に便利です。 複合アクションを使用すると、長い YAML ワークフロー ファイルを大幅に縮小されたファイルにリファクタリングし、ワークフロー ファイル間でのコピーとペーストを回避することができます。
再利用可能なワークフローと複合アクションは同様の問題を解決しますが、いくつかの重要な違いがあります。 ほとんどの場合、どちらのソリューションでも使用できます。 ただし、この記事の後半で説明するように、一部の場合には片方のみを使用する必要があります。
再利用可能なワークフローと複合アクションを作成して使用する方法の詳細については、「ワークフローの再利用」と「複合アクションを作成する」を参照してください。
再利用可能なワークフローと複合アクションの比較
- ワークフロー ジョブ - 複合アクションには、呼び出し元ワークフロー内でシングル ステップとして実行される一連のステップが含まれています。 再利用可能なワークフローとは異なり、ジョブを含めることはできません。
- ログ - 複合アクションが実行されると、複合アクション内の個々のステップではなく、複合アクションを実行した呼び出し元ワークフローのステップだけがログに表示されます。 再利用可能なワークフローでは、すべてのジョブとステップが個別にログに記録されます。
- ランナーの指定 - 再利用可能なワークフローには、1 つ以上のジョブが含まれます。 すべてのワークフロー ジョブと同様に、再利用可能なワークフロー内のジョブは、ジョブを実行するマシンの種類を指定します。 そのため、呼び出し元のワークフロー ジョブ用に選択したマシンとは異なる可能性があるマシンの種類でステップを実行する必要がある場合は、複合アクションではなく再利用可能なワークフローを使用する必要があります。
- ステップへの出力の受け渡し - 複合アクションはワークフロー ジョブ内のステップとして実行され、複合アクションを実行するステップの前または後に複数のステップを持つことができます。 再利用可能なワークフローは、ジョブ ステップ内からではなく、ジョブ内で直接呼び出されます。 再利用可能なワークフローを呼び出した後でジョブにステップを追加することはできません。そのため、呼び出し元ワークフローの後続のジョブ ステップに値を渡すために
GITHUB_ENV
を使用することはできません。
再利用可能なワークフローと複合アクションの主な違い
再利用可能なワークフロー | 複合アクション |
---|---|
任意の標準ワークフロー ファイルによく似た YAML ファイル | ワークフロー ステップのバンドルを含むアクション |
再利用可能な各ワークフローは、リポジトリの .github/workflows ディレクトリにある 1 つのファイル | 各複合アクションは個別のリポジトリまたはディレクトリで、action.yml ファイルと、必要に応じてその他のファイルも含む |
特定の YAML ファイルを参照することで呼び出される | アクションが定義されているリポジトリまたはディレクトリを参照することで呼び出される |
ステップからではなく、ジョブ内で直接呼び出される | ジョブ内でステップとして実行する |
複数のジョブを含めることができる | ジョブを含まない |
各ステップはリアルタイムで記録される | 複数のステップが含まれている場合でも、1 つのステップとしてログに記録される |
最大 4 つのレベルのワークフローを接続できる | 1 つのワークフローで最大 10 個の複合アクションを入れ子にすることができる |
シークレットが使用できる | シークレットが使用できない |