第11章 カスタムアクションの作成 カスタムアクションを作成する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
GitHubのアクションを支えるコードは、とてもシンプルなものからとても複雑なものまである。シンプルなシェルスクリプトから、実装コードやテストケース、ワークフロー(テストやコンテンツの検証、その他の CI/CD タスク用)のコレクションまで、さまざまなものがある。GitHub Actionsを使い始めてしばらくすると、自分で作成したくなるかもしれない。これは、他のアクションをカスタマイズしたものを提供したり、特殊化したアクションを一から作成したりするためだ。
始める前に...
独自のアクションを作成するパスを始める前に、Actions Marketplaceのような場所を検索して、あなたが望むことをするアクションがすでにあるかどうかを確認することは役に立つ。
アクションは、GitHub APIを呼び出したり、標準的なシェルステップを実行したり、カスタムコードを実装したりすることで関数を提供できる。また、ランナー上で直接実行することもできるし(第5章で説明する)、Dockerコンテナ内で実行することもできる。このため、カスタムアクションを作成する際の柔軟性が高い。
この章では、カスタムアクションの作成と操作方法について、以下のトピックを取り上げる:
- アクションの解剖学を記述する
- 行動の種類について話し合う
- シンプルな複合アクションを作成する
- Dockerコンテナアクションの作成
- JavaScriptアクションを作成する
- 市場にアクションを起こす
- GitHub Actions Toolkitを使う
- 地元の行動について話し合う
まずは、リポジトリをアクションとして利用できるようにする部分、インタフェースファイルの定義から始めよう。
アクションの解剖学
アクション・マーケットプレイスのどのアクションを見ても、共通する特徴があることに気づくだろう。
- これらはすべて個別のGitHubリポジトリにある。
- それぞれにユニークな名前が付けられている。
- それらはバージョン識別子を持つ。
- READMEファイルがある。
- それらはaction.ymlまたはaction.yamlファイルを持っている。
アクション ファイル名
action.ymlまたはaction.yamlのいずれかが有効である。
それぞれのアクションの機能や実装が大きく異なっていても、これらの項目は一貫して存在している。先のリストの最初の4項目は、ほとんどの GitHub リポジトリで標準的に使われているものだ。しかし、5 番目の項目はリポジトリ (とそこに含まれるコード) をアクションとしてユーザビリティを高めるものだ。ワークフローで使えるようにアクションのインタフェースを定義する重要なファイルでもある。他の章でも簡単に説明したが、ここではより深く掘り下げて、カスタムアクションに適したaction.ymlファイルを作成する方法を説明する。
action.ymlファイルはアクションの入力、出力、構成を定義する。設定情報は基本的な識別情報(およびオプションのブランド情報)を含む。また、アクションが実行される環境の詳細と、その環境のための特殊化設定も含まれる。これは明確に定義された形式を持つ。action.ymlファイルの例 (GitHub が提供するキャッシュアクション用) を次のリストに示す: ...