Skip to content

CI: manual no-cache rebuild, fix venv cache, Node 24 actions - #412

Merged
irvingpop merged 3 commits into
mainfrom
ci-no-cache-rebuild
Oct 24, 2026
Merged

irvingpop merged 3 commits into
mainfrom
ci-no-cache-rebuild

Conversation

@irvingpop

@irvingpop irvingpop commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

Why

  • CVE-2026-111497 (Brotli): The prod image is built with the GHA layer cache. When only Debian packages change, BuildKit reuses the old apt-get upgrade layer, so security fixes are not picked up. The images from 2026-10-22 have libbrotli1 1.1.0-2+b7 (vulnerable). A no-cache rebuild gets 1.1.0-2+deb13u1 (fixed).
  • CI was failing: The venv cache key had only py3.14. The runner moved to Python 3.14.8, so CI restored a venv with a broken interpreter link (Command not found: ruff / pytest).
  • Node 20 deprecation warnings from several actions.
  • Supply chain: snok/install-poetry@v1 was an unpinned third-party action.

What

  • Add workflow_dispatch with a no_cache boolean input (default true). On dispatch: build with no-cache + pull, then push. main pushes :prod, other branches push :staging. Push and PR builds do not change.
  • Key the venv caches on the full Python version from setup-python (steps.setup-python.outputs.python-version).
  • Bump actions to Node 24 versions: checkout v7, cache v6, setup-python v7, codecov-action v7, setup-buildx-action v4, build-push-action v7, configure-aws-credentials v6. Release notes checked: breaking changes are only the runner minimum (v2.327.1) and removed inputs we do not use.
  • Replace snok/install-poetry with pipx install "poetry==$POETRY_VERSION" (pipx is preinstalled on GitHub runners). This also removes the Poetry install cache.

After merge

The merge build uses the layer cache, so it does not fix the CVE. Then run Actions > CI > Run workflow on main with no_cache checked. Check the new image: dpkg-query -W libbrotli1 must show 1.1.0-2+deb13u1.

Scan

Docker Scout on a local no-cache build: 0 critical, 1 high (zlib CVE-2026-85091, no Debian fix yet, affects the non-blocking gzwrite path only).

🤖 Generated with Claude Code

irvingpop and others added 3 commits October 24, 2026 07:23
The docker build uses the GHA layer cache, so Debian security fixes
(e.g. libbrotli1 for CVE-2026-111497) are not picked up unless the apt
layer changes. Add a workflow_dispatch trigger with a no_cache input
(default true) that rebuilds from a fresh base image and pushes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Key the Poetry and venv caches on the full Python version from
  setup-python. The runner moved to 3.14.8 and the old py3.14 key
  restored a venv with a broken interpreter link, so lint/test failed.
- Bump checkout v7, cache v6, setup-python v7, codecov v7,
  setup-buildx v4, build-push v7, configure-aws-credentials v6
  to remove Node 20 deprecation warnings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Removes an unpinned third-party action from the supply chain. pipx is
preinstalled on GitHub-hosted runners.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@irvingpop irvingpop changed the title Add manual no-cache rebuild to CI workflow CI: manual no-cache rebuild, fix venv cache, Node 24 actions Oct 24, 2026
@irvingpop
irvingpop merged commit 7cd62c6 into main Oct 24, 2026
5 checks passed
@irvingpop
irvingpop deleted the ci-no-cache-rebuild branch October 24, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant