From d07d5b522f39ea9cbf5eee7aaddabd18f7940a45 Mon Sep 17 00:00:00 2001 From: Nikolay Kiryanov Date: Sat, 25 Jul 2026 16:30:15 +0300 Subject: [PATCH 1/2] Run tests on all logical cores --- {{ cookiecutter.name }}/.github/workflows/ci.yml | 6 +----- {{ cookiecutter.name }}/Makefile | 2 +- {{ cookiecutter.name }}/compose.yml | 2 +- {{ cookiecutter.name }}/pyproject.toml | 2 +- {{ cookiecutter.name }}/uv.lock | 9 +++++++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/{{ cookiecutter.name }}/.github/workflows/ci.yml b/{{ cookiecutter.name }}/.github/workflows/ci.yml index 23cfe56e..e93e12a9 100644 --- a/{{ cookiecutter.name }}/.github/workflows/ci.yml +++ b/{{ cookiecutter.name }}/.github/workflows/ci.yml @@ -61,14 +61,10 @@ jobs: packages: locales-all gettext version: 1 - - name: get number of cpu cores - uses: SimenB/github-actions-cpu-cores@v2.0.0 - id: cpu-cores - - name: test env: DATABASE_URL: postgres://postgres:secret@localhost:5432/postgres - run: make test -e SIMULTANEOUS_TEST_JOBS=${{ steps.cpu-cores.outputs.count }} + run: make test build-docker-image: needs: test diff --git a/{{ cookiecutter.name }}/Makefile b/{{ cookiecutter.name }}/Makefile index 2263b99f..28555b98 100644 --- a/{{ cookiecutter.name }}/Makefile +++ b/{{ cookiecutter.name }}/Makefile @@ -1,4 +1,4 @@ -SIMULTANEOUS_TEST_JOBS = 4 +SIMULTANEOUS_TEST_JOBS = logical .DEFAULT_GOAL := help diff --git a/{{ cookiecutter.name }}/compose.yml b/{{ cookiecutter.name }}/compose.yml index 083e9e87..25afc035 100644 --- a/{{ cookiecutter.name }}/compose.yml +++ b/{{ cookiecutter.name }}/compose.yml @@ -17,7 +17,7 @@ services: - POSTGRES_HOST_AUTH_METHOD=trust ports: - 5432:5432 - command: --autovacuum=off --fsync=off --synchronous_commit=off --full_page_writes=off --work_mem=12MB --max-connections=10 --max_wal_senders=0 + command: --autovacuum=off --fsync=off --synchronous_commit=off --full_page_writes=off --work_mem=12MB --max-connections=100 --max_wal_senders=0 redis: image: valkey/valkey:8.0-alpine diff --git a/{{ cookiecutter.name }}/pyproject.toml b/{{ cookiecutter.name }}/pyproject.toml index edd40142..2995ddbf 100644 --- a/{{ cookiecutter.name }}/pyproject.toml +++ b/{{ cookiecutter.name }}/pyproject.toml @@ -44,7 +44,7 @@ dev = [ "pytest-freezer>=0.4.9", "pytest-mock>=3.15.1", "pytest-randomly>=4.1.0", - "pytest-xdist>=3.8.0", + "pytest-xdist[psutil]>=3.8.0", "ruff>=0.15.22", "toml-sort>=0.24.4", "types-freezegun>=1.1.10", diff --git a/{{ cookiecutter.name }}/uv.lock b/{{ cookiecutter.name }}/uv.lock index ac6a8d26..6bb0d2d5 100644 --- a/{{ cookiecutter.name }}/uv.lock +++ b/{{ cookiecutter.name }}/uv.lock @@ -1287,6 +1287,11 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, ] +[package.optional-dependencies] +psutil = [ + { name = "psutil" }, +] + [[package]] name = "python-dateutil" version = "2.9.0.post0" @@ -1540,7 +1545,7 @@ dev = [ { name = "pytest-freezer" }, { name = "pytest-mock" }, { name = "pytest-randomly" }, - { name = "pytest-xdist" }, + { name = "pytest-xdist", extra = ["psutil"] }, { name = "ruff" }, { name = "toml-sort" }, { name = "types-freezegun" }, @@ -1588,7 +1593,7 @@ dev = [ { name = "pytest-freezer", specifier = ">=0.4.9" }, { name = "pytest-mock", specifier = ">=3.15.1" }, { name = "pytest-randomly", specifier = ">=4.1.0" }, - { name = "pytest-xdist", specifier = ">=3.8.0" }, + { name = "pytest-xdist", extras = ["psutil"], specifier = ">=3.8.0" }, { name = "ruff", specifier = ">=0.15.22" }, { name = "toml-sort", specifier = ">=0.24.4" }, { name = "types-freezegun", specifier = ">=1.1.10" }, From f05139e84fce087fb5335994794e52b26180840b Mon Sep 17 00:00:00 2001 From: Nikolay Kiryanov Date: Sat, 25 Jul 2026 16:30:21 +0300 Subject: [PATCH 2/2] Use long --num-workers flag for mypy --- {{ cookiecutter.name }}/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{ cookiecutter.name }}/Makefile b/{{ cookiecutter.name }}/Makefile index 28555b98..18fe2a65 100644 --- a/{{ cookiecutter.name }}/Makefile +++ b/{{ cookiecutter.name }}/Makefile @@ -45,7 +45,7 @@ lint-ruff-format: uv run ruff format --check src lint-mypy: - uv run mypy -n 4 src + uv run mypy --num-workers 4 src lint-toml: uv run toml-sort --check pyproject.toml