🦾
Deno でカスタム GitHub アクション書く
この記事はGitHub Actions Advent Calendar 2022 2 日目の記事です。
GitHub Actions 上で動作するカスタムアクションを Deno で書く方法をいくつか紹介します。
複合アクションで denoland/setup-deno を実行する
複合アクションで denoland/setup-deno 後に deno run
するだけのシンプルな手法です。
hasundue/denopendabot というカスタムアクションではこの手法が使われています。
利点:
- 開発の手間がかからない
欠点
- denoland/setup-deno の分だけ時間がかかる (と言っても1~3秒程度)
action.yaml
runs:
using: composite
steps:
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Deno Run
run: deno run -q -A main.ts
dnt
で変換して JavaScript アクションとして実行する
Deno で GitHub CLI 拡張機能書くでも紹介した dnt
を使用した手法です。
筆者が作成した gh-describe
というカスタムアクションではこの手法を採用しています。
利点:
- denoland/setup-deno を実行しない分速い (と言っても1~3秒程度)
欠点
- リポジトリに変換後のソースをコミットする必要がある
今回も Node.js で実行だけできれば十分なため、esm
のみ出力して esbuild
でバンドルしてコミットしています。
Discussion