第3章. アクションには何があるのか?
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第2章では、GitHub Actionsがどのように処理を行うのかについて説明した。 中心的な機能はワークフロー、つまりイベントのレスポンスとして実行され、ジョブを実行して何らかの処理を行うコードだ。ワークフローの最下層では、ワークフローのジョブがステップを実行する。ステップはOSのコマンドを呼び出すこともできるし、GitHub Actionsが単にアクションと呼ぶ別の機能の実装を呼び出すこともできる。
ワークフローとアクションの比較
アクション とワークフロー の区別は、しばらくの間混乱し続ける点のひとつになり得るので、ここでは、アクションは他のアプリケーションのプラグインやモジュールのようなものであり、ワークフローはそれらのモジュールやプラグインを使用するパイプラインやスクリプトのようなものであると考えることを思い出してほしい。
これで、実際のアクションの実装がどこで使われるのか、つまりワークフローのステップでアクションが呼び出されるのかを理解できるようになっただろう。この章では、GitHub Actions プラットフォームの概要の続きとして、個々のアクションを構成する要素について見ていこう。具体的には、次のようなことを説明する:
- アクションの構造
- アクションとのインタフェース
- アクションを使う
- パブリック・アクションとアクション・マーケットプレイス
アクションの実装
この章では、新しいアクションの作成方法については説明しないことに注意。第11章では、独自のカスタムアクションを作成する方法を詳しく説明する。
アクションの構造
アクションの実装は、非常に単純なものから非常に複雑なものまである。 単純な方では、実行される小さなシェルスクリプトかもしれない。複雑な方では、実装コード、テストケース、そしてコンテンツの検証、ビルド、脆弱性のチェック、パッケージングなどのCI/CDタスクを処理するワークフローの大規模なセットになるかもしれない。
第 2 章で説明したチェックアウトアクションは、その複雑な実装のひとつだ。図 3-1に、このアクションの背後にある GitHub リポジトリのメインページの一部を示します。
図3-1. GitHubのチェックアウトアクション
それぞれのアクションの根底にあるのは、GitHubリポジトリにあるコードベースだ。GitHub の他の多くのプロジェクトと同様に、このリポジトリにもコードに加えて多くのサポートがある(ライセンス、テスト、ソース、.gitattributes など)。src領域を掘り下げると、実際の作業を行う TypeScript ファイル(.ts拡張子)など、 の基盤となる実装の詳細を見ることができる。図3-2にsrcサブディレクトリの内容を示す。