apps/extension/docs/extension-CI-setup.md
This document explains the CI/CD setup for the Task Master VS Code extension using automated changesets.
extension-ci.yml)main or next branches (only when extension files change)main or next (only when extension files change)npm run build)npm run package)version.yml)Triggers:
main branchWhat it does:
When making changes to the extension:
# From project root
npx changeset add
taskr-kanban when promptedpatch: Bug fixes, minor updatesminor: New features, backwards compatiblemajor: Breaking changesmainVSCE_PAT is set)OVSX_PAT is set)[email protected]To use the automated publishing, you need to set up these GitHub repository secrets:
VSCE_PAT (VS Code Marketplace Personal Access Token)VSCE_PATOVSX_PAT (Open VSX Registry Personal Access Token)OVSX_PATGITHUB_TOKEN (automatically provided)This is automatically available in GitHub Actions - no setup required.
Versions are automatically managed by changesets:
The automation ensures these fields stay in sync between package.json and package.publish.json:
{
"version": "1.0.2", // โ
AUTO-SYNCED
"publisher": "Hamster", // โ ๏ธ MUST MATCH MANUALLY
"displayName": "taskr: Task Master Kanban", // โ ๏ธ MUST MATCH MANUALLY
"description": "...", // โ ๏ธ MUST MATCH MANUALLY
"engines": { "vscode": "^1.93.0" }, // โ ๏ธ MUST MATCH MANUALLY
"categories": [...], // โ ๏ธ MUST MATCH MANUALLY
"contributes": { ... } // โ ๏ธ MUST MATCH MANUALLY
}
Note: Only version is automatically synced. Other fields must be manually kept in sync.
Workflows upload artifacts that you can download:
.changeset/ directorytaskr-kanban package namemain branchnpx changeset addVSCE_PAT, OVSX_PAT) are setVSCE_PAT is not set ErrorVSCE_PAT secret is added to repositoryOVSX_PAT is not set ErrorOVSX_PAT secret is added to repositorycd apps/extension && npm run buildnpm run testnpm run typechecknpm run packagepackage.publish.json has correct repository fieldtaskr-kanbanThe CI workflows respect the 3-file packaging system:
package.json for dependencies and scriptspackage.publish.json for clean marketplace packagepackage.mjs to create vsix-build/ for final packagingYour extension will be automatically published to both:
This ensures clean, predictable, and fully automated publishing to both registries! ๐