From 89760813e3acf345851f70994c1c1bcc23e91aa3 Mon Sep 17 00:00:00 2001 From: Dyakov Roman Date: Sat, 6 Apr 2024 16:36:33 +0300 Subject: [PATCH] Fixes in Makefile and Workflows (#108) * Makefile format * Style * Better on pr workflow * Service instead docker setup --- .github/workflows/checks.yml | 29 +++++++++++++------ Makefile | 6 ++++ calendar_backend/settings.py | 2 +- .../versions/63263ee9e08e_fix_photo_paths.py | 1 - 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 52903a76..55606cb2 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -1,24 +1,29 @@ -name: Python package +name: Python tests on: pull_request: - jobs: test: name: Unit tests runs-on: ubuntu-latest + services: + postgres: + image: postgres:15 + env: + POSTGRES_HOST_AUTH_METHOD: trust + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + -p 5432:5432 steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up docker - uses: docker-practice/actions-setup-docker@master - - name: Run postgres - run: | - docker run -d -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust --name db-test postgres:15-alpine - uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: "3.11" - name: Install dependencies run: | python -m ensurepip @@ -28,8 +33,10 @@ jobs: run: | DB_DSN=postgresql://postgres@localhost:5432/postgres alembic upgrade head - name: Build coverage file + id: pytest run: | DB_DSN=postgresql://postgres@localhost:5432/postgres pytest --junitxml=pytest.xml --cov-report=term-missing:skip-covered --cov=calendar_backend tests/ | tee pytest-coverage.txt + exit ${PIPESTATUS[0]} - name: Print report if: always() run: | @@ -48,6 +55,10 @@ jobs: remove-link-from-badge: false junitxml-path: ./pytest.xml junitxml-title: Summary + - name: Fail on pytest errors + if: steps.pytest.outcome == 'failure' + run: exit 1 + linting: runs-on: ubuntu-latest steps: @@ -60,7 +71,7 @@ jobs: requirementsFiles: "requirements.txt requirements.dev.txt" - uses: psf/black@stable - name: Comment if linting failed - if: ${{ failure() }} + if: failure() uses: thollander/actions-comment-pull-request@v2 with: message: | diff --git a/Makefile b/Makefile index 2ef49c1a..d42b352d 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,12 @@ format: source ./venv/bin/activate && autoflake -r --in-place --remove-all-unused-imports ./calendar_backend source ./venv/bin/activate && isort ./calendar_backend source ./venv/bin/activate && black ./calendar_backend + source ./venv/bin/activate && autoflake -r --in-place --remove-all-unused-imports ./tests + source ./venv/bin/activate && isort ./tests + source ./venv/bin/activate && black ./tests + source ./venv/bin/activate && autoflake -r --in-place --remove-all-unused-imports ./migrations + source ./venv/bin/activate && isort ./migrations + source ./venv/bin/activate && black ./migrations db: docker run -d -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust --name db-timetable_api postgres:15 diff --git a/calendar_backend/settings.py b/calendar_backend/settings.py index 573000ce..7658af36 100644 --- a/calendar_backend/settings.py +++ b/calendar_backend/settings.py @@ -2,7 +2,7 @@ from functools import lru_cache from auth_lib.fastapi import UnionAuthSettings -from pydantic import AnyHttpUrl, ConfigDict, DirectoryPath, Json, PostgresDsn +from pydantic import AnyHttpUrl, ConfigDict, DirectoryPath, PostgresDsn from pydantic_settings import BaseSettings diff --git a/migrations/versions/63263ee9e08e_fix_photo_paths.py b/migrations/versions/63263ee9e08e_fix_photo_paths.py index 4841162d..cb31fea1 100644 --- a/migrations/versions/63263ee9e08e_fix_photo_paths.py +++ b/migrations/versions/63263ee9e08e_fix_photo_paths.py @@ -6,7 +6,6 @@ """ -import sqlalchemy as sa from alembic import op