[Enhancement] Настроить CI/CD для автоматического прогона тестов и линтеров #53

Closed
opened 2026-07-12 21:18:10 +07:00 by artem.kokos · 0 comments
Owner

Проблема

В репозитории отсутствуют файлы CI/CD (.github/workflows/, .gitlab-ci.yml, .travis.yml и т.п.). В результате:

  • Новые коммиты не проверяются автоматически.
  • Регрессии совместимости (например, Python 3.9) и форматирования (black) попадают в main.
  • Контрибьюторам не видно, проходят ли тесты в их PR.

Рекомендации

Создать GitHub Actions workflow (или аналог для используемого хостинга), который на каждый push/PR выполняет:

strategy:
  matrix:
    python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-python@v5
    with:
      python-version: ${{ matrix.python-version }}
  - run: pip install -e .[dev]
  - run: pytest -v
  - run: black --check redmine_reporter tests
  - run: isort --check-only redmine_reporter tests
  - run: ruff check redmine_reporter tests
  - run: mypy redmine_reporter

Критерий готовности

  • Pipeline запускается на каждый PR и push в main.
  • Все шаги (тесты, black, isort, ruff, mypy) проходят.
  • README обновлён бейджем статуса.

Метки

enhancement, packaging

## Проблема В репозитории отсутствуют файлы CI/CD (`.github/workflows/`, `.gitlab-ci.yml`, `.travis.yml` и т.п.). В результате: - Новые коммиты не проверяются автоматически. - Регрессии совместимости (например, Python 3.9) и форматирования (`black`) попадают в `main`. - Контрибьюторам не видно, проходят ли тесты в их PR. ## Рекомендации Создать GitHub Actions workflow (или аналог для используемого хостинга), который на каждый push/PR выполняет: ```yaml strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - run: pip install -e .[dev] - run: pytest -v - run: black --check redmine_reporter tests - run: isort --check-only redmine_reporter tests - run: ruff check redmine_reporter tests - run: mypy redmine_reporter ``` ## Критерий готовности - [ ] Pipeline запускается на каждый PR и push в `main`. - [ ] Все шаги (тесты, black, isort, ruff, mypy) проходят. - [ ] README обновлён бейджем статуса. ## Метки enhancement, packaging
artem.kokos added the enhancementpackaging labels 2026-07-12 21:18:10 +07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: artem.kokos/redmine-reporter#53