diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7adf2bb..9cba027 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13", "3.14"] steps: - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 @@ -90,3 +90,23 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage.xml fail_ci_if_error: false + + docker-build: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + + - uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 + + # собираем образ без пуша в GHCR: ловим поломку базового образа, + # --require-hashes и cp314-колёс ещё на PR, а не после мержа в CD + - name: build image + uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6 + with: + context: . + push: false + load: true + tags: kool-bot:ci + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/Dockerfile b/Dockerfile index e00207d..6db480e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # базовый образ закреплён по digest, а не только по тегу: тег 3.13-slim # подвижный, digest гарантирует тот же самый образ при каждой сборке -FROM python:3.13-slim@sha256:f82c96458eedc847b233e582eb31336f4954b39cae020b6dcf5b3ed0e5cbcd74 +FROM python:3.14-slim@sha256:d7a925f9eb9639a93e455b9f12c167569358818c0f62b51b88edbc8fcf34c421 RUN useradd --create-home --uid 1000 --shell /bin/bash bot diff --git a/README.md b/README.md index cc8b043..854299b 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ ruff check . && ruff format --check . python bench.py # бенч горячих путей под cProfile ``` -CI проверяет на 3.11 / 3.12 / 3.13. Продакшн на 3.13. +CI проверяет на 3.12 / 3.13 / 3.14. Продакшн на 3.14. ---