ci(pipeline): speed up lint and test CI pipeline#87
Open
demo10-labworksdev wants to merge 2 commits intomainfrom
Open
ci(pipeline): speed up lint and test CI pipeline#87demo10-labworksdev wants to merge 2 commits intomainfrom
demo10-labworksdev wants to merge 2 commits intomainfrom
Conversation
- Skip Docker-based pre-commit hooks (lychee-docker, actionlint-docker) in CI and run each via its own native GitHub Action instead, which caches binaries and avoids Docker image pulls in pre-commit - Split heavyweight 'test' job into minimal 'unit-test' job: uses only setup-uv (no full bootstrap) so unit tests run without Docker, QEMU, grant, or pre-commit setup - faster feedback on every PR - Add timing output (time prefix) on lint and build steps - Upgrade docker/setup-qemu-action v3 -> v4 (fixes Node.js 20 deprecation) - Apply same lint optimizations to commit.yml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The trufflehog golang hook fails on Windows due to deeply nested Go module paths that Windows cannot clean up (WinError 145). Switch to the trufflesecurity/trufflehog:3.94.2 Docker image via a local hook so it works on both Windows (Docker already running) and Linux CI. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Summary
Closes #83
lychee-docker,actionlint-docker) and run each via a dedicated native GitHub Action (lycheeverse/lychee-action,raven-actions/actionlint), which cache binaries and avoid Docker image pulls inside pre-commit — the primary source of the ~3m34s lint timetestjob into minimalunit-testjob: uses onlysetup-uv(no full bootstrap, no Docker, no QEMU, no grant) — unit tests get ~8-10s lighter startup and run independently of Dockertrufflehoghook for Windows: switched fromlanguage: golangtolanguage: docker_image— the golang hook fails on Windows due to deeply nested Go module paths (WinError 145)docker/setup-qemu-actionv3 → v4: eliminates the Node.js 20 deprecation warning on every runtimetiming output on lint and build steps to track improvements over timecommit.ymlWhy not
docker save/docker loadcaching?Research confirmed this is slower than re-pulling on GitHub-hosted runners — CPU-bound tar serialization loses to the runners' fast registry network. Switching to native non-Docker tools is the right approach.
Expected speedup
Test plan
lycheeverse/lychee-action)raven-actions/actionlint)🤖 Generated with Claude Code