この記事はこの記事は”東京高専プロコンゼミ① Advent Calendar 2019” 24日目の記事です.
おはようございます, 記事を書いてる現在12/25 0時20分です.もう遅刻が当たり前になってきました. さて今日はようやくクリスマス・イブです,が アドベントカレンダーの枠を取ってしまったので記事を書いて行きます. 別にアドベントカレンダーを書いてるからクリボッチをしてるわけではないんですが
今回の記事は前回のDjangoでtestsを書くはなしの続きです, まだ読んでないかたは適当に読み流してきてからこの記事を読むとわかりやすいかもしれません.
GitHub Actions
https://github.co.jp/features/actions
GitHub Actionsってなんぞやって人のために一応説明しておくと, GitHub Actionsは設計図共有サイトであるGitHubが2019/11/13にリリースしたワークフロー自動化サービスです, これまではCircle CI などの外部サービスを使わないとできなかった高度なワークフローの自動化がGitHub内でできるようになりました. MSがGitHubを買収してからGitHubの新機能がすごい増えた気がします.
値段とか
基本的に無料で使えます. しかもLinuxだけじゃなくWindows, Macとかも動かせます. これまでWindowやmacOSが無料で使えるサービスはなかった気がするので, 結構大盤振る舞いです.
設定
設定はymlファイルでおこないます, β版のときはGUIエディターが用意されてたんですが, リリース版では廃止されています. 設定の書き方はCircle CIにすごい似てるらしいです.
やりたいこと
各Pushごとに前回の記事で書いたテストコードを自動で実行するようにします. そのためにはPythonの環境を揃えるのと, データベース(Postgresql)を立ち上げる必要があります.
Python
公式でtemplateが用意されてたのでそのファイルに書き込む形で作りました.
Pythonのコンフィグはこんな感じになりました, 上の方で Pythonのパッケージをインストールしていて, 下の方で実際にテストを実行しています.
DB(PostgreSQL)
DjangoのtestはDBにアクセスするものもあるためDBを立てる必要があります, Exampleが公開されていたのでそれを流用しました.
https://github.com/actions/example-services/blob/master/.github/workflows/postgres-service.yml
最終的なConfig
結果(?)
動きました, 各pushごとにちゃんとテストを実行してくれます.
PRを出すとそのPRでテストが通ってるかわかりやすく表示してくれます. 嬉しい!!
まとめ
GitHub Actions, 無料だし簡単に使えるので是非使いましょう. 毎回のPRでコーディング規約を守っているか, ビルドが通るかとかの確認くらいは来年のプロコンの開発で回せると(ある程度)安全な開発ができると思います.