From 068fdf0627e4968924b0d6077acd57f28feed266 Mon Sep 17 00:00:00 2001 From: omelchenkopeter Date: Mon, 11 Sep 2023 12:37:04 +0300 Subject: [PATCH] edited main.yml-4 --- .github/workflows/main.yml | 48 +++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f9f64e7dee..0e18308d3a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,31 +7,47 @@ on: jobs: tests: - # Разворачиваем окружение: runs-on: ubuntu-latest - + # Блок services аналогичен docker-compose.yml + services: + postgres: + image: postgres:13.10 + # Указываем имя тестовой базы, имя и пароль пользователя в открытом виде, + # ведь эта база будет работать только во время прогона тестов + env: + POSTGRES_USER: django_user + POSTGRES_PASSWORD: django_password + POSTGRES_DB: django_db + ports: + - 5432:5432 + # Эта конструкция описывает проверку готовности сервиса postgres + # Если её не будет, то тесты могут запуститься раньше, чем сервер PostgreSQL + # В результате тесты опять решат, что базы нет, — и упадут + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - # Копируем код проекта - - name: Check out code - uses: actions/checkout@v3 - # Устанавливаем Python с помощью action + - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 - # В action setup-python@v4 передаём параметр — версию Python with: python-version: 3.9 - # Обновляем pip, устанавливаем flake8 и flake8-isort, - # устанавливаем зависимости проекта + - name: Install dependencies run: | python -m pip install --upgrade pip pip install flake8==6.0.0 flake8-isort==6.0.0 pip install -r ./backend/requirements.txt - # Запускаем flake8 - - name: Test with flake8 - # Вызываем flake8 и указываем ему, - # что нужно проверить файлы только в папке backend/ + # Этот шаг дополним переменными для доступа к БД + - name: Test with flake8 and django tests + # Добавляем env-переменные для доступа к БД + env: + POSTGRES_USER: django_user + POSTGRES_PASSWORD: django_password + POSTGRES_DB: django_db + # Сервер БД запущен в Docker, но его порт проброшен на хост + # Поэтому подключаемся к 127.0.0.1:5432 + DB_HOST: 127.0.0.1 + DB_PORT: 5432 run: | - python -m flake8 backend/ - cd backend/ - python manage.py test + python -m flake8 backend/ + cd backend/ + python manage.py test