Help us understand the problem. What is going on with this article?

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

概要

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away