ci: Optimize CI workflows for linting and release jobs#185
Merged
Conversation
Lint is OS-agnostic and already runs on Linux via test:coverage. Add test:vscode script and use it on non-Linux to run only compile+test, avoiding duplicate lint execution on macOS (10x cost) and Windows (2x cost). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add timeout-minutes to both jobs in the release workflow to prevent them from hanging indefinitely on transient failures: - release-please job: 5 minutes (typically completes in 1-2 min) - release job: 20 minutes (includes npm ci, tests, and vsce publish) This ensures CI minutes are not wasted if a network issue or other transient problem causes a job to stall. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #185 +/- ##
=======================================
Coverage 59.17% 59.17%
=======================================
Files 6 6
Lines 1984 1984
Branches 143 143
=======================================
Hits 1174 1174
Misses 810 810 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves GitHub Actions efficiency for the VS Code extension by avoiding redundant linting on non-Linux CI runners, adding a dedicated VS Code test script, and preventing release workflows from hanging indefinitely via job timeouts.
Changes:
- Add
test:vscodenpm script as a lint-free entry point for VS Code extension tests. - Update CI workflow to run full
test:coverageonly on Linux; on macOS/Windows run compile + VS Code tests without lint. - Add job-level timeouts to the release workflows.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| package.json | Adds test:vscode script to decouple VS Code tests from pretest linting. |
| .github/workflows/ci.yml | Runs coverage/lint only on Linux; runs compile + VS Code tests on non-Linux runners. |
| .github/workflows/release.yml | Adds job timeouts to avoid indefinite hangs during release/release-please jobs. |
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.
Enhance CI efficiency by skipping redundant linting on non-Linux runners and introducing a dedicated test script for VSCode. Additionally, set timeout limits for release workflow jobs to prevent indefinite hangs during transient failures.
closes #184
closes #183