GitHub Actions를 사용하여 pytest
5143 단어 GitHubActionspytestPython3
소개
이 기사에서는 GitHub Actions를 활용하여 Python 테스트 실행과 커버리지 측정을 수행하는 GitHub Actions를 만들고 싶습니다.
GitHub Actions 은 GitHub에서 제공하는 CI/CD 서비스입니다.
지금까지 CircleCI를 이용하고 있었습니다만, 어느새 GitHub Actions를 이용할 수 있게 되어 있어, 시험에 사용해 보면 편리했기 때문에 기사로 했습니다.
CircleCI에 비해 GitHub Actions가 좋다고 생각한 것은 다음의 3점입니다. (GitHub Actions와 CircleCI를 모두 굳게 사용하고 있는 것은 아니기 때문에, 잘못된 내용을 말하고 있으면 안 됩니다.)
GitHub Actions
하고 싶은 일
설정 파일의 위치
리포지토리 바로 아래에
.github/workflows/
라는 폴더를 만들고 그 안에 job이 될 yml 파일을 둡니다.![](https://s1.md5.ltd/image/201606972226619be7e10a96570270f7.png)
이 때 여러 개의 파일을 넣으면 각각이 job이됩니다.
![](https://s1.md5.ltd/image/3f0b91b397600ff2404d9fb775d34193.png)
설정 파일 내용
이번에 작성하는 CI는 다음 경우에만 실행되도록 제한됩니다.
또한 테스트 커버리지는
Python3.8
에서의 테스트 결과만 codecov에 올려놓도록 하고 있습니다.※설정의 내용의 대부분은, 참고 사이트씨의를 이용하고 있습니다.
# ここに設定した名前がActions上に表示される
name: pytest
on:
push:
branches:
- master
pull_request:
branches:
- develop
jobs:
pytest:
name: Run tests with pytest
# 実行環境として `ubuntu-latest` という名前のものを選ぶ
runs-on: ubuntu-latest
# 複数の Python のバージョンでテストするために `strategy.matrix` を設定する
strategy:
matrix:
python-version: [3.7, 3.8]
steps:
# リポジトリをチェックアウトする
# See: https://github.com/actions/checkout
- name: Checkout
uses: actions/checkout@v2
# Python のランタイムをセットアップする
# バージョンは `strategy.matrix` に並べたものを指定する
# See: https://github.com/actions/setup-python
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
# Poetry そのものをインストールする
- name: Install Poetry
run: |
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
# Poetry へのパスを通す
- name: Add path for Poetry
run: echo "$HOME/.poetry/bin" >> $GITHUB_PATH
# インストールした Poetry を使って必要な Python パッケージをインストールする
- name: Install Dependencies
run: poetry install --no-interaction
# pytest を実行する
- name: Run Tests
run: poetry run pytest test --cov=./slack_api_decorator --cov-report=xml
- name: Upload coverage to Codecov
# 上記のstepsが全て完了した場合にcodecovへupload
# 今回はpublic repositoryのためKEYは不要だが、privateなら必要なので注意
if: ${{ matrix.python-version==3.8 }}
uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
name: codecov-umbrella
fail_ci_if_error: true
GitHub Actions의 배지
테스트를 하면, badge를 README라든지에 붙이고 싶네요.
GitHub Actions를 사용하면 각각의 job 마다 badge를 이하의 버튼으로부터 취득할 수가 있습니다.
![](https://s1.md5.ltd/image/c6e63c8a9c08fc598e9e27039b2830da.png)
다만, 이 기사 하지만 말해지고 있듯이, 링크처가 화상이 되어 있으므로, 링크등을 올바르게 설정해 주면 좋다고 생각합니다.
다음 절차에 따라 수정할 수 있습니다.
1: 생성된 배지
![pytest](https://github.com/gsy0911/slack-api-decorator/workflows/pytest/badge.svg)
2: 생성된 배지를 []로 묶고 뒤에 ()를 붙인다.
[![pytest](https://github.com/gsy0911/slack-api-decorator/workflows/pytest/badge.svg)]()
3: 뒤에 ()에 해당하는 CI 링크를 붙이기
[![github-pytest](https://github.com/gsy0911/slack-api-decorator/workflows/pytest/badge.svg)](https://github.com/gsy0911/slack-api-decorator/actions?query=workflow%3Apytest)
결론
일단 자주 사용하는 pytest의 GitHub Actions를 이용해 보았습니다.
이번에는 AWS에 CDK를 이용하여 자동 배포하도록 하고 싶습니다.
참고
아래 사이트를 참고로 본 설정 파일을 작성했습니다.
아래 사이트를 참고로 본 설정 파일을 작성했습니다.
Reference
이 문제에 관하여(GitHub Actions를 사용하여 pytest), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gsy0911/items/abf48168cd78ba12e199텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)