Skip to content

Рефакторинг тестов и структуры папок #25

Рефакторинг тестов и структуры папок

Рефакторинг тестов и структуры папок #25

Workflow file for this run

# Произвольное имя workflow
name: Python CI
# На какие события запускается workflow
on:
- push
- pull_request
jobs:
# Произвольное имя задания (в нашем случае "сборка")
build:
# Операционная система, на которой все будет запущено
runs-on: ubuntu-latest
# Список шагов, которые нужно выполнить
steps:
# uses запускает указанный экшн
# Экшн версии v4 клонирует репозиторий
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Произвольное имя шага
- name: Set up Python
# Запускаем экш установки python
uses: actions/setup-python@v5
with:
# Для установки указываем версию python 3.13
python-version: "3.13"
# Установка зависимостей проекта
- name: Install dependencies
# run выполняет произвольную bash команду
# Команды make из Makefile используют uv, поэтому установим также uv
# И установим библиотеки для проекта
run: |
pip install uv
make install
# Прогоним проверки тестов и линтера
- name: Run linter and pytest
run: |
make check
# Сформируем отчет о покрытии тестами
# Отчет попадет в файл coverage.xml и дальше будет использован сканером SonarCloud
- name: Run test coverage
run: |
make test-coverage
# Запускаем работу сканера SonarCloud
- name: SonarQubeScan
# https://github.com/SonarSource/sonarqube-scan-action
uses: SonarSource/sonarqube-scan-action@v6
# Токен задается в интерфейсе github
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# Аргументы, с которыми вызываем скрипт сканера
with:
# projectBaseDir: gendiff
args: >
-Dsonar.projectKey=experiment0_python-project-50
-Dsonar.organization=sdfja3905802-cxgw34923fsf
-Dsonar.python.coverage.reportPaths=coverage.xml
-Dsonar.sources=gendiff/
-Dsonar.test.exclusions=tests/**
-Dsonar.python.version=3.13