diff --git a/.circleci/config.yml b/.circleci/config.yml index f90f9aa6..33b210a2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,9 +5,9 @@ version: 2.1 # Define a job to be invoked later in a workflow. # See: https://circleci.com/docs/2.0/configuration-reference/#jobs jobs: - api-tests-3-11: + api-tests-3-13: docker: - - image: cimg/python:3.11 + - image: cimg/python:3.13 # `large` (4 vCPU, 8 GB) so pytest-xdist's `-nauto` has room to scale. resource_class: large steps: @@ -15,7 +15,7 @@ jobs: - run: sudo apt-get update - run: sudo apt-get install -y ffmpeg catdoc - restore_cache: - key: deps-3.11-{{ checksum "requirements.txt" }}-5 + key: deps-3.13-{{ checksum "requirements.txt" }}-5 - run: name: Install Requirements command: | @@ -23,7 +23,7 @@ jobs: . venv/bin/activate pip install -r requirements.txt - save_cache: - key: deps-3.11-{{ checksum "requirements.txt" }}-5 + key: deps-3.13-{{ checksum "requirements.txt" }}-5 paths: - "venv" # `-nauto` parallelizes across all available cores via pytest-xdist. @@ -35,7 +35,7 @@ jobs: path: test-results.xml # Do the API and the frontend's test fixtures still agree? # - # `api-tests-3-11` runs these too, as part of the whole suite. This job exists for the + # `api-tests-3-13` runs these too, as part of the whole suite. This job exists for the # signal: fixture drift is silent by nature -- the frontend suite passes against a body the # API stopped sending -- so it is worth a check whose name says what broke, failing in under a # minute rather than somewhere inside seventeen hundred results. @@ -44,12 +44,12 @@ jobs: # Python jobs, so it costs a venv restore and one test file. api-contract-tests: docker: - - image: cimg/python:3.11 + - image: cimg/python:3.13 resource_class: medium steps: - checkout - restore_cache: - key: deps-3.11-{{ checksum "requirements.txt" }}-5 + key: deps-3.13-{{ checksum "requirements.txt" }}-5 - run: name: Install Requirements command: | @@ -62,12 +62,12 @@ jobs: api-alembic-migrations: docker: - - image: cimg/python:3.11 + - image: cimg/python:3.13 resource_class: medium steps: - checkout - restore_cache: - key: deps-3.11-{{ checksum "requirements.txt" }}-5 + key: deps-3.13-{{ checksum "requirements.txt" }}-5 - run: name: Install Requirements command: | @@ -83,35 +83,13 @@ jobs: - run: name: Check for Missing Migrations command: MEDIA_DIRECTORY=/tmp/wrolpi-media ./venv/bin/python ./main.py db check - api-tests-3-12: - docker: - - image: cimg/python:3.12 - resource_class: large - steps: - - checkout - - run: sudo apt-get update - - run: sudo apt-get install -y ffmpeg catdoc - - restore_cache: - key: deps-3.12-{{ checksum "requirements.txt" }}-5 - - run: - name: Install Requirements - command: | - python3 -m venv venv - . venv/bin/activate - pip install -r requirements.txt - - save_cache: - key: deps-3.12-{{ checksum "requirements.txt" }}-5 - paths: - - "venv" - - run: - command: './venv/bin/pytest -nauto' sanic-api-start: docker: - - image: cimg/python:3.11 + - image: cimg/python:3.13 steps: - checkout - restore_cache: - key: deps-3.11-{{ checksum "requirements.txt" }}-5 + key: deps-3.13-{{ checksum "requirements.txt" }}-5 - run: name: Install dependencies command: | @@ -206,10 +184,9 @@ workflows: wrolpi-api-tests: jobs: - sanic-api-start - - api-tests-3-11 + - api-tests-3-13 - api-contract-tests - api-alembic-migrations - # - api-tests-3-12 Sanic does not yet support 3.12. wrolpi-app-test: jobs: - react-app-start diff --git a/.github/workflows/controller-tests.yml b/.github/workflows/controller-tests.yml index d4dfa60d..21739c62 100644 --- a/.github/workflows/controller-tests.yml +++ b/.github/workflows/controller-tests.yml @@ -21,7 +21,8 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + # Trixie ships 3.13, and docker/controller/Dockerfile is python:3.13-slim-trixie. + python-version: '3.13' cache: 'pip' cache-dependency-path: controller/requirements.txt