Действия GitHub для разработки на Python

Если вы разрабатываете свое приложение на GitHub, то, возможно, захотите рассмотреть возможность использования GitHub Actions для вашего CI/CD. В этом руководстве мы рассмотрим, как использовать действия GitHub для тестирования нескольких версий python и на разных платформах.
Наш пример будет включать быстрое приложение API, использующее pytest для запуска наших тестов, pylint для проверки компоновки, на версиях python (3.8, 3.9, 3.10, 3.11) с платформами (Windows, Mac, Linux). Вы можете найти этот пример на GitHub здесь.
Первое, что вы заметите, это то, что в каталоге .github/workflows
есть файл с именем python-app.yml
, который представляет собой файл YAML, который будет использоваться для нашего конвейера действий GitHub.

В этом файле вы найдете приведенную ниже разбивку.

Вы увидите, что runs-on
ключа использует переменную matrix.os
, которая имеет массив используемых операционных систем. В то время как ключ python-versions
используют переменную matrix.python-version
, которая принимает массив версий python.
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
Ниже вы увидите несколько ключей с именем run
, каждый из которых предназначен для установки зависимостей, линтинга и тестирования.
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Lint with pylint
run: |
pylint --recursive=y api --rcfile=.pylintrc
- name: Test with pytest
run: |
pytest api/
Каждый раз, когда вы отправляете изменение в свой репозиторий, это действие будет выполняться.

Чтобы узнать больше об автоматизации и тестировании Python с помощью GitHub Actions, перейдите по этой ссылке.