From cfc7e3fc7c9751643fe24a864341b43d36effa38 Mon Sep 17 00:00:00 2001 From: Roman Dyakov Date: Sat, 6 Apr 2024 15:26:26 +0300 Subject: [PATCH 1/5] Fix fastapi update --- services_backend/routes/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services_backend/routes/base.py b/services_backend/routes/base.py index 873e0c1..3e95e11 100644 --- a/services_backend/routes/base.py +++ b/services_backend/routes/base.py @@ -18,7 +18,7 @@ description='Программный интерфейс управления списком сервисов в приложении Твой ФФ!', version=__version__, # Настраиваем интернет документацию - root_path=settings.ROOT_PATH if __version__ != 'dev' else '/', + root_path=settings.ROOT_PATH if __version__ != 'dev' else '', docs_url=None if __version__ != 'dev' else '/docs', redoc_url=None, ) From 77e0e85de1d36b0a12ccb767ab5426d0a98b0999 Mon Sep 17 00:00:00 2001 From: Roman Dyakov Date: Sat, 6 Apr 2024 15:31:42 +0300 Subject: [PATCH 2/5] Makefile format --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index 01e5bf1..de43f23 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,12 @@ format: source ./venv/bin/activate && autoflake -r --in-place --remove-all-unused-imports ./services_backend source ./venv/bin/activate && isort ./services_backend source ./venv/bin/activate && black ./services_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-services-backend postgres:15 From 3e2fb48199c20ab4355d8cc628e2c5a8963ef7ca Mon Sep 17 00:00:00 2001 From: Roman Dyakov Date: Sat, 6 Apr 2024 15:44:25 +0300 Subject: [PATCH 3/5] Style --- migrations/versions/660bb7891726_scopes.py | 1 + migrations/versions/6a486347af93_order.py | 1 + .../d35e88f39f85_end-to-end_numbering_fix.py | 13 ++++++------- .../versions/d6b21dcb2c75_enum_type_button_fix.py | 1 + 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/migrations/versions/660bb7891726_scopes.py b/migrations/versions/660bb7891726_scopes.py index 57a6059..2a4b964 100644 --- a/migrations/versions/660bb7891726_scopes.py +++ b/migrations/versions/660bb7891726_scopes.py @@ -5,6 +5,7 @@ Create Date: 2023-03-16 14:38:26.163590 """ + import sqlalchemy as sa from alembic import op diff --git a/migrations/versions/6a486347af93_order.py b/migrations/versions/6a486347af93_order.py index bd87bed..06d4f50 100644 --- a/migrations/versions/6a486347af93_order.py +++ b/migrations/versions/6a486347af93_order.py @@ -5,6 +5,7 @@ Create Date: 2023-02-11 10:18:11.179485 """ + import sqlalchemy as sa from alembic import op diff --git a/migrations/versions/d35e88f39f85_end-to-end_numbering_fix.py b/migrations/versions/d35e88f39f85_end-to-end_numbering_fix.py index daf1b6a..de8c46e 100644 --- a/migrations/versions/d35e88f39f85_end-to-end_numbering_fix.py +++ b/migrations/versions/d35e88f39f85_end-to-end_numbering_fix.py @@ -5,7 +5,6 @@ Create Date: 2023-04-09 11:28:59.326067 """ -import operator import sqlalchemy as sa from alembic import op @@ -29,9 +28,9 @@ def upgrade(): conn.execute( sa.text( f"""UPDATE "button" - SET "order"={i + 1}, - "link"='{res_b[i][5]}', - "type"='{res_b[i][6]}' + SET "order"={i + 1}, + "link"='{res_b[i][5]}', + "type"='{res_b[i][6]}' WHERE id={res_b[i][0]}""" ) ) @@ -49,9 +48,9 @@ def downgrade(): conn.execute( sa.text( f"""UPDATE "button" - SET "order"={k + 1}, - "link"='{res_b[i][5]}', - "type"='{res_b[i][6]}' + SET "order"={k + 1}, + "link"='{res_b[i][5]}', + "type"='{res_b[i][6]}' WHERE id={res_b[i][0]}""" ) ) diff --git a/migrations/versions/d6b21dcb2c75_enum_type_button_fix.py b/migrations/versions/d6b21dcb2c75_enum_type_button_fix.py index 51884e3..f62995f 100644 --- a/migrations/versions/d6b21dcb2c75_enum_type_button_fix.py +++ b/migrations/versions/d6b21dcb2c75_enum_type_button_fix.py @@ -5,6 +5,7 @@ Create Date: 2023-04-11 14:21:54.007129 """ + import sqlalchemy as sa from alembic import op From 1674dd1917b385cdba9fd8289c92012b1c80c33d Mon Sep 17 00:00:00 2001 From: Roman Dyakov Date: Sat, 6 Apr 2024 15:56:54 +0300 Subject: [PATCH 4/5] Better on pr workflow --- .github/workflows/checks.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 70953ac..63845d4 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -1,9 +1,8 @@ -name: Python package +name: Python tests on: pull_request: - jobs: test: name: Unit tests @@ -18,7 +17,7 @@ jobs: 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,6 +27,7 @@ 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=services_backend tests/ | tee pytest-coverage.txt - name: Print report @@ -48,6 +48,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,9 +64,8 @@ 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: | :poop: Code linting failed, use `black` and `isort` to fix it. - From 56f796ae16b2fbcf37ca9f273103905cfd3572a0 Mon Sep 17 00:00:00 2001 From: Roman Dyakov Date: Sat, 6 Apr 2024 16:21:30 +0300 Subject: [PATCH 5/5] Service instead docker setup --- .github/workflows/checks.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 63845d4..a6c76e6 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -7,14 +7,20 @@ 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" @@ -30,6 +36,7 @@ jobs: id: pytest run: | DB_DSN=postgresql://postgres@localhost:5432/postgres pytest --junitxml=pytest.xml --cov-report=term-missing:skip-covered --cov=services_backend tests/ | tee pytest-coverage.txt + exit ${PIPESTATUS[0]} - name: Print report if: always() run: |