第13章. 高度なワークフローテクニック
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ワークフローには、あまり頻繁に遭遇しないユースケースの処理を大幅に簡略化するテクニックセットがある。この章では、Actionsツールボックスの追加ツールとして使えるように、これらのテクニックをいくつか集めてみた。
この章の前半では、GitHub コンポーネントとどのようにやりとりし、ワークフローから GitHub の関数をどのようなインタフェースで動かすかについて説明する。
次に、GitHub Actionsのマトリックス戦略を活用して、複数の入力次元にまたがるジョブのセットを自動的にスピンアップする方法について詳しく説明する。第8章ではこの入門編を紹介したが、議論や探求すべきことはまだまだたくさんある。
最後に、ワークフローで使用するさまざまな環境、テクノロジー、機能をカプセル化するテクニックとして、コンテナを使用する複数の方法について説明する。ワークフローでコンテナを活用する汎用的な方法がいくつかあるので、それぞれ例を挙げて説明する。なお、これは第11章で説明するコンテナアクションの構築とは異なる。
手始めに、ワークフロー内から GitHub の演算子とより直接連携する方法を紹介しよう。
ワークフローからGitHubを動かす
GitHub コンポーネントを使うことで、通常の構造やフローではできないようなことが必要になったりしたくなったりすることもあるだろう。もちろん、タスクを処理するためのカスタムアクションを作成することもできます (第 11 章 を参照ください)。しかし、タスクを一度だけ実行する必要がある場合や、ひとつのステップ内で実行できる場合は、それはやりすぎかもしれません。
このセクションでは、GitHub の低レベルの機能を動かすためにワークフローで活用できるテクニックをいくつか見ていこう。この分野のトピックは以下の通り:
- GitHub CLIを使う
- スクリプトの作成
- GitHub APIを呼び出す
まず最初は、ワークフローからGitHubのコマンドラインインタフェース(CLI)にアクセスする方法だ。
GitHub CLIを使う
GitHubは、プルリクエスト、課題、リポジトリ、リリースなど、GitHub特有のさまざまな演算子や実体に使えるシンプルなCLIを提供しており、ダウンロードして使うことができる。このための実行ファイルはgh という名前が付いている。
GitHubでホストされたランナー上でワークフローを実行する場合、GitHub CLIはすでにインストールされており、利用することができる。ワークフローに組み込むには、run コマンドからgh 実行ファイルを呼び出せばいい。 このための唯一の前提条件は、GITHUB_TOKENという環境変数に、CLIを実行するのに必要なアクセス権とスコープを持つトークンをセットする必要があるということだ。通常は、secrets コンテキストから環境変数を GITHUB_TOKEN にセットするだけで十分である。
CLIを使って再利用可能なワークフローで新しいGitHub issue を作成する例を次のリストに示す:
1 name: create issue via gh 2 3 on: 4 workflow_call: 5 inputs: 6 title: 7 description: 'Issue title' ...