概要
前回「Travis CIでPipenv + Pytestの自動テストを行った」でTravis CIを使った自動テストを実施したが、Github Actionsが使えるようになったので、こちらでも試してみた。
実際に試してみたリポジトリは下記である。
https://github.com/doara-developer/weatherlib
Github Actions
GithubのCI/CDツール。現在はまだベータ版だが、まもなく標準サポートされる。ベータ版への参加リクエストを送ることで利用可能。私の場合は申請してから数日後に通った。
申請が通ると下記のようなActionsタブが表示される。
Workflowの作成
基本的には、yamlファイルに「処理が始まるトリガー」と「実行する処理内容」を記述することで、Workflowを作成することが出来る。最初からテンプレートが用意されているので、それをベースに書けばそこまで困らないだろう。
最終的に作成したyamlファイルは下記である。本リポジトリではPushをトリガーにPipenvとライブラリをインストールして、Pipfileに書かれているPytest実行用のコマンドを叩くだけ。他にどんなことが出来るか気になる方はGitHub Actionsのワークフロー構文をチェック。
name: Run pytest
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install pipenv and dependencies
run: |
python -m pip install --upgrade pip
pip install pipenv --upgrade-strategy=only-if-needed
pipenv install --dev
- name: Run test
run: |
pipenv run tests
Workflowの実行状況を確認
作成後、Actionsタブに行くとWorkflowの動作状況を確認できる。何故かTravis CIの状況も表示された、素晴らしい。
バッジの作成方法
Travis CIと同じようにGithub Actionsも状況を確認するためのバッジを作成し、Readmeに貼ることが出来る。下記がバッジのURLである。
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg
まとめ
とても分かりやすく、特に詰まることなく実行することが出来た。標準サポートになればわざわざ別のCIサービスを使う必要がなくなってくるので、おそらくGithub Actionsが主流になっていくだろう。