Open8
カスタムアクションを作る
やっていき
3種類ある。
- Dockerコンテナのアクション (Docker container actions)
- コンテナを使えるのでランナーの環境への依存が少ない
- コンテナのビルド、フェッチの関係でやや遅い
- https://docs.github.com/ja/actions/creating-actions/creating-a-docker-container-action
- JavaScript のアクション (JavaScript actions)
- 複合アクション(Composite Actions)
- 複数のステップを組み合わせて1つのアクションにできる
- https://docs.github.com/ja/actions/creating-actions/creating-a-composite-action
今回はJavaScriptアクションを作る
テンプレートリポジトリもある
基本的な構成
- actions.yml にアクションの定義を記述
- TypeScript でコードを書く
- vercel/ncc でビルド
- CIでテスト
vercel/nccでTypeScriptをビルドする
npm -i -D vercel/ncc typescript
- tsconfigを作成
ncc build src/index.ts
ドキュメントにはTypeScriptはビルトインしてあると書いてあったけどインストールしないとビルドできなかった。
CIで自前のアクションを実行するにはチェックアウトしてuses: ./
を指定する
- uses: actions/checkout@v3
- uses: ./
アクションのバージョンはタグで管理するのが推奨
package.jsonのversion
をマスターにしてrelease-pleaseで管理するとよさそう。
アクション内でコンテキストを取得したり、GitHubを操作するためのパッケージを入れる
npm install @actions/core
npm install @actions/github