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 파일을 둡니다.이 때 여러 개의 파일을 넣으면 각각이 job이됩니다.
설정 파일 내용
이번에 작성하는 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를 이하의 버튼으로부터 취득할 수가 있습니다.
다만, 이 기사 하지만 말해지고 있듯이, 링크처가 화상이 되어 있으므로, 링크등을 올바르게 설정해 주면 좋다고 생각합니다.
다음 절차에 따라 수정할 수 있습니다.
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.)