Skip to content

fix: remove GHA Docker layer cache causing stale vendor/ COPY - #63

Merged
xnetsc merged 1 commit into
mainfrom
devin/1773393876-fix-docker-cache
Mar 13, 2026
Merged

fix: remove GHA Docker layer cache causing stale vendor/ COPY#63
xnetsc merged 1 commit into
mainfrom
devin/1773393876-fix-docker-cache

Conversation

@xnetsc

@xnetsc xnetsc commented Mar 13, 2026

Copy link
Copy Markdown
Owner

fix: remove GHA Docker layer cache to fix stale vendor/ COPY

Summary

The Docker multi-platform build in the release workflow fails with:

unable to open '/app/vendor/websocket': FileNotFound

The vendor/websocket/ directory exists in git and is checked out correctly, but the Zig build inside Docker can't find it. The suspected cause is the GHA layer cache (cache-from: type=gha) returning a stale COPY vendor/ vendor/ layer from a previous build before vendor/websocket/ was added. Docker buildx GHA cache has known issues with COPY cache invalidation.

Changes:

  1. Remove cache-from/cache-to from the Docker build-push-action to ensure clean builds
  2. Add a diagnostic ls step before the Docker build to verify vendor/websocket/ is present after checkout

Review & Testing Checklist for Human

  • Root cause is unverified — the failure could not be reproduced locally (Docker builds succeed every time with --no-cache). The GHA stale cache theory is plausible but not proven. If this fix doesn't resolve the issue, the diagnostic ls step will at least confirm whether the checkout is correct.
  • The diagnostic ls runs on the runner, not inside Docker — it verifies actions/checkout has the files, but does NOT verify what buildx actually copies into the container. Consider adding ls vendor/ inside the Dockerfile RUN step as well (before zig build) for deeper diagnosis.
  • Removing cache increases Docker build time — each release will rebuild all layers from scratch (~2 min). If this is acceptable, fine; otherwise, consider re-adding cache with scope=${{ github.sha }} after confirming the fix works.
  • Test plan: Merge this PR, create a new tag (e.g. v2026.3.13.1), push it, and verify the Docker stage passes in the release workflow. If it still fails, check the Verify build context step output to confirm vendor/websocket/ is listed.

Notes


Open with Devin

Summary by CodeRabbit

Release Notes

  • Chores
    • Updated internal CI/CD pipeline configuration to improve build verification and streamline deployment processes.

…ayer

The Docker multi-platform build was failing with 'unable to open
vendor/websocket: FileNotFound' because the GHA cache (cache-from: type=gha)
was returning a stale COPY vendor/ layer from before vendor/websocket was
added. Docker buildx GHA cache has known issues with COPY cache invalidation.

Remove cache-from/cache-to to ensure clean builds. Also add a verification
step to list vendor/ contents before the Docker build for diagnostics.

Co-Authored-By: mccoy <hbzgzr@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@coderabbitai

coderabbitai Bot commented Mar 13, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The release workflow configuration was updated to add a docker build context verification step and remove GitHub Actions cache configuration from the docker/build-push-action step.

Changes

Cohort / File(s) Summary
Workflow Configuration
.github/workflows/release.yml
Added "Verify build context" step to list vendor directories; removed cache-from and cache-to options from docker/build-push-action step.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Cache cleared with a hop and a skip,
Vendor dirs now pass the verification trip,
Docker builds fresh, no old ghosts to keep,
The workflow runs clean, oh what a leap!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: removing GitHub Actions Docker layer cache that was causing stale vendor/ COPY issues in the release workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1773393876-fix-docker-cache
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

@xnetsc
xnetsc merged commit 34dfa2d into main Mar 13, 2026
3 checks passed
@xnetsc
xnetsc deleted the devin/1773393876-fix-docker-cache branch March 13, 2026 09:29
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