先日は、 Deno を AWS Fargate を使って動かしてみました。
その途上で Github Actions を使いましたが、これでテスト?を実行してる OSS 見かけたことが有ったので試してみます。
参考
- Github - actions/checkout
- Qiita - GitHub Actions 内で docker-compose exec コマンド実行したときに”the input device is not a TTY”エラーが出たときの解決法
実装
.github/workflows/test.yml
1 | name: deno-test |
Dockerfile
1 | FROM denoland/deno:centos |
docker-compose.yml
1 | version: "3" |
テスト対象のコード本体 app.ts
1 | import { assertEquals } from "https://deno.land/std@0.113.0/testing/asserts.ts"; |
実行
ここまでの実装(というほどでもないですね)で、github actions でテストを実行できました。
テストコードをワザとエラーになるように書き換えると、actions の実行結果もちゃんと失敗になります。
失敗になった後の後続処理は実行されませんでした。
エラーになった時だけのアクションはできないだろうか?
- GitHub Docs - GITHUB ACTIONS について学ぶ - コンテキスト
- Github Support community - Github Action error handling
の2つが参考になりました。
以下のように書き換えました。
1 | name: deno-test |
以上の様に書き換えて実行すると、それぞれ「成功時のみ実行」「失敗時実行」「いつでも実行」するようにできました。
実行結果ごとに通知など作るとき便利そうです。
Github Actions で、deno test を実行できました。
と、Deno のテスト実行の文脈で話をしていますが、Deno に縛った話でも無かったわけでした。
ではでは。