GitHub Actionsがリリースされたことで、GitHub内でCIが回せるようになりました。最近、何か新しい言語を学ぶ際のネタに引っ張り出してきがちな プログラミング入門者からの卒業試験は『ブラックジャック』を開発すべし – Qiita をもとにしたブラックジャックをF#で書いたのですが、既存プロジェクトに対しても、GitHub Actionsであれば簡単に導入でき、CIを回せることが分かりました。
Contents
ワークフローの設定
まずはActionsタブをクリックすると、下記のような画面が表示されます (スクリーンショットは設定済みのものです)。
New workflowをクリックすると、使用言語に合わせた設定を提案してくれます。便利。
今回はF#ですので、提案されたとおりの .NET Core を選びます。
画面がエディタ画面に切り替わり、 .github/workflows/dotnetcore.yml
ファイル編集画面が表示されます。テンプレートはここで開発されているようです。
yamlファイルを見ると以下がわかります。
runs-on
実行環境。リストで複数選択できるが今回はubuntu-latestのみsteps
実際の処理uses: actions/checkout@v1
では標準のチェックアウト処理を利用する書き方ですuses: actions/setup-dotnet@v1
では.NET環境をセットアップする書き方です。CI内容を全部書かなくていいのは便利ですねrun: dotnet build --configuration Release
でビルド実行
お察しの通り、テスト実行がないため、steps:
に以下を追加します。
- name: Test
run: dotnet test
これでテストも回すことができるようになります。
ActionsによるCI実施
テスト結果は、Actionsでサマリーを表示できます。またプッシュした最新コミットに対してもCIしてくれます。これは on: [push]
と設定しているからですね。
また、あえてテスト失敗させてみたのですが、失敗したstepにバツ印がつくためわかりやすいです。
感想
今回初めてGitHub Actionsを使ってみたのですが、非常に簡単に導入できるのが良いですね。特にTravis CIとの連携を気にせず、GitHubの画面内で必要な情報に到達できるのが良いと感じました。
テストがなくてもCIで出来ることは多いですので、GitHubで何かプロジェクトを作った際には、早い段階でGitHub Actionsを設定してCIを回せるようにするのが良いと感じました。プロジェクトを作った時点でGitHub Actionsが組み込まれているようになると、より便利かもしれません。
CIに続いてCD周りの機能もあるようですので、機会があれば使ってみます。