Repository navigation
fix(build): force no-cache so images stop shipping stale ca-certificates - #954
Merged
Merged
Conversation
The gha cache replays the old apk/apt layer, so a rebuild resolves no packages and the published image keeps the vulnerable ca-certificates. Set no-cache on the three publishing build-push steps. cache-to is kept on purpose: the clean layers are still exported, so the first build after the revert starts from a healthy cache. Temporary - revert once every repo is rebuilt and redeployed (#953).
Contributor
🔍 Lint Analysis
|
Contributor
🛡️ CodeQL Analysis ResultsLanguages analyzed: Found 1 issue(s): 1 Medium
🔍 View full scan logs | 🛡️ Security tab |
Contributor
🔍 PR Validation Summary✅ PR Mergeable — no blocking failures
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
no-cache re-runs every Dockerfile step, but it does not re-resolve the base image: a ca-certificates that ships inside FROM survives it. On an ephemeral runner the base usually is pulled fresh, which makes the gap incidental rather than guaranteed. Set pull on the same three publishing steps so both paths are closed. Temporary - reverted together with no-cache (#953).
2 tasks done
This comment has been minimized.
This comment has been minimized.
The note was in the present tense next to the line that disables the behaviour it describes, so it could read as if the no-cache build were the one keeping the bad package. Scope it to the cached rebuild.
Contributor
|
@coderabbitai review |
|
❌ Action failedReview failed.
|
ferr3ira-gabriel
approved these changes
Oct 21, 2026
5 of 14 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Hotfix for the image builds: with
cache-from: type=gha, BuildKit replays the cachedapk/aptlayer, so a rebuild resolves no packages and the published image keeps shipping the vulnerableca-certificates(https://emudhra.we-have-a-problem.com/). Rebuilding a consumer repo today does not actually fix its image.no-cache: trueandpull: trueare set on the three publishing steps:.github/workflows/build.yml— Build image for verification.github/workflows/build.yml— Build and push Docker imagesrc/build/docker-build-ts/action.yml— Build and push Docker imageno-cachecovers the first path: it marks every vertex non-cacheable, so the imported gha cache is ignored and theapk/aptstep actually runs. It does not re-resolve the base image, so aca-certificatesthat ships insideFROMwould survive it — on an ephemeral runner the base usually is pulled fresh, but that is incidental, not a guarantee.pullcloses that second path.cache-to: type=gha,mode=maxis kept on purpose: the clean layers are still exported, so the first build after the revert starts from a healthy cache instead of the poisoned one.Not touched, because neither publishes an image and neither reads the gha cache:
pr-security-scan.yml(scan build) andfrontend-pr-analysis.yml(smoke-test build).This is temporary, and it is not cheap.
build.ymlruns two builds per component — the verification build (load: true) exists precisely so its layers land in the gha cache and the multi-arch push build reuses them (see the comment atbuild.yml:714). Withno-cacheon both, that reuse is gone: every job now compiles the image twice from scratch. Revert tracked in #953, to be applied once every consumer repo has been rebuilt and redeployed.Type of Change
feat: New workflow or new input/output/step in an existing workflowfix: Bug fix in a workflow (incorrect behavior, broken step, wrong condition)perf: Performance improvement (e.g. caching, parallelism, reduced steps)refactor: Internal restructuring with no behavior changedocs: Documentation only (README, docs/, inline comments)ci: Changes to self-CI (workflows under.github/workflows/that run on this repo)chore: Dependency bumps, config updates, maintenancetest: Adding or updating testsBREAKING CHANGE: Callers must update their configuration after this PRBreaking Changes
None. No input, output or default changes for callers — only build duration is affected.
Testing
@this-branchor the beta tagCaller repo / workflow run: none yet — no run was triggered on a consumer repo before opening this PR.
Related Issues
Tracking: #953 (revert of this mitigation — must NOT be closed by this PR)