Добавлено оаписание #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Произвольное имя workflow | |
| name: Django CI | |
| # На какие события запускается workflow | |
| on: | |
| - push | |
| - pull_request | |
| jobs: | |
| # Произвольное имя задания (в нашем случае "сборка") | |
| build: | |
| # Операционная система, на которой все будет запущено | |
| runs-on: ubuntu-latest | |
| # Список шагов, которые нужно выполнить | |
| steps: | |
| # uses запускает указанный экшн | |
| # Экшн версии v4 клонирует репозиторий | |
| - uses: actions/checkout@v4 | |
| with: | |
| # SonarQube: Disabling shallow clones is recommended for improving the relevancy of reporting | |
| 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 tests | |
| env: | |
| DEBUG: ${{ secrets.DEBUG }} | |
| DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
| SECRET_KEY: ${{ secrets.SECRET_KEY }} | |
| run: | | |
| make check | |
| # Сформируем отчет о покрытии тестами | |
| # Отчет попадет в файл coverage.xml и дальше будет использован сканером SonarCloud | |
| - name: Run test coverage | |
| env: | |
| DEBUG: ${{ secrets.DEBUG }} | |
| DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
| SECRET_KEY: ${{ secrets.SECRET_KEY }} | |
| run: | | |
| make test-coverage | |
| # Запускаем работу сканера SonarCloud | |
| - name: SonarQube Scan | |
| # https://github.com/marketplace/actions/official-sonarqube-scan | |
| uses: SonarSource/sonarqube-scan-action@v6 | |
| # Токен задается в интерфейсе github | |
| env: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| # Аргументы, с которыми вызываем скрипт сканера | |
| with: | |
| projectBaseDir: task_manager | |
| args: > | |
| -Dsonar.projectKey=experiment0_python-project-52 | |
| -Dsonar.organization=sdfja3905802-cxgw34923fsf | |
| -Dsonar.python.coverage.reportPaths=coverage.xml | |
| -Dsonar.test.exclusions=task_manager/settings.py | |
| -Dsonar.python.version=3.13 |