CI/CD Workflows¶
This project uses GitHub Actions for continuous integration and deployment. Here's an overview of all workflows.
CI Pipeline¶
File: .github/workflows/ci.yaml Triggers: Pull requests to main and develop
Runs the following checks on every pull request:
| Job | Description |
|---|---|
| Lint and Format | ESLint and Prettier checks |
| Package Extension | Verifies the extension packages correctly |
| Security Scan | npm audit and optional Snyk scanning |
| Validate Manifest | Checks required package.json fields |
| Compatibility Check | Verifies VS Code engine compatibility |
Release Pipeline¶
File: .github/workflows/release.yaml Triggers: Push to main
Handles automatic versioning and publishing:
- Analyzes commit messages using semantic-release
- Bumps version in
package.jsonbased on commit conventions - Creates a GitHub Release with changelog
- Packages and uploads the VSIX file
- Publishes to VS Code Marketplace (if PAT is configured)
Manual trigger
You can manually trigger a release from GitHub Actions → "Release and Publish Extension" → "Run workflow".
Documentation Pipeline¶
File: .github/workflows/docs-deploy.yaml Triggers: Push to main (when docs/**, mkdocs.yml, or requirements.txt change)
Builds and deploys the documentation site to GitHub Pages:
- Validates documentation builds on pull requests
- Auto-configures repository URLs in
mkdocs.yml - Builds the MkDocs site
- Deploys to GitHub Pages
Other Workflows¶
| Workflow | File | Purpose |
|---|---|---|
| CodeQL | codeql.yaml | Code security analysis |
| Gitleaks | gitleaks.yaml | Scans for leaked secrets |
| Dependency Review | deps-review.yaml | Reviews dependency changes in PRs |
| Lint PR | lint-pr.yaml | Validates PR title follows conventional commits |
| Pre-commit CI | pre-commit-ci.yaml | Runs pre-commit hooks in CI |
| Stale | stale.yaml | Marks and closes stale issues/PRs |
| Cleanup Caches | cleanup-caches.yaml | Cleans up old GitHub Actions caches |
| Template Sync | template-repo-sync.yaml | Syncs with upstream template repository |
| Backfill VSIX | backfill-vsix.yaml | Backfills VSIX files to existing releases |
| Pre-commit Auto Update | pre-commit-auto-update.yaml | Keeps pre-commit hooks up to date |