36
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Github ActionsでPipenv + Pytestの自動テストを行った

Last updated at Posted at 2019-11-08

概要

前回「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が主流になっていくだろう。

36
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?