Skip to content

Configure VSCE packaging and publishing workflow #65

@johnproblems

Description

@johnproblems

Task: Configure VSCE packaging and publishing workflow

Description

Set up the VSCode Extension (VSCE) packaging and publishing workflow to enable automated building and publishing of the extension to the VSCode marketplace. This includes configuring VSCE, creating build scripts, and setting up CI/CD automation for releases.

Acceptance Criteria

  • VSCE tool installed and configured in project
  • Package script creates valid .vsix file
  • Publish script configured with proper authentication
  • Pre-publish validation runs (tests, linting, type checking)
  • CI/CD workflow configured for automated publishing
  • Version bumping workflow documented
  • .vscodeignore configured to exclude unnecessary files
  • Extension successfully packages without errors or warnings

Technical Details

  • Install vsce as dev dependency: npm install -D @vscode/vsce
  • Update extensions/vscode/package.json scripts:
    • "vscode:prepublish": "npm run compile": Pre-publish hook
    • "package": "vsce package": Create .vsix package
    • "publish": "vsce publish": Publish to marketplace
    • "publish:patch": "vsce publish patch": Bump patch version and publish
    • "publish:minor": "vsce publish minor": Bump minor version and publish
    • "publish:major": "vsce publish major": Bump major version and publish
  • Create .vscodeignore file to exclude:
    • Source files (*.ts, tsconfig.json)
    • Test files
    • Development dependencies
    • Git files (.git, .github, .gitignore)
    • Build artifacts (node_modules from bundling)
    • Documentation sources
    • CI/CD configs
  • Create GitHub Actions workflow .github/workflows/publish-vscode-extension.yml:
    • Trigger on tag push (v*..)
    • Run tests and build
    • Package extension
    • Publish to marketplace using VSCE_PAT secret
    • Create GitHub release with .vsix artifact
  • Configure publisher account:
    • Create Personal Access Token (PAT) in Azure DevOps
    • Add VSCE_PAT as GitHub secret
    • Register publisher on VSCode marketplace
  • Add publishing documentation to extensions/vscode/PUBLISHING.md:
    • How to create releases
    • Version bumping guidelines
    • Pre-publish checklist
    • Rollback procedures
  • Files affected:
    • extensions/vscode/package.json (updated)
    • extensions/vscode/.vscodeignore (new file)
    • .github/workflows/publish-vscode-extension.yml (new file)
    • extensions/vscode/PUBLISHING.md (new file)

Dependencies

  • Task 2: Extension scaffolding complete
  • Task 64: Marketplace listing metadata configured
  • All core features implemented and tested
  • Publisher account created on VSCode marketplace
  • Azure DevOps PAT token generated

Effort Estimate

  • Size: M
  • Hours: 6
  • Parallel: false

Definition of Done

  • Code implemented
  • Tests written and passing
  • Documentation updated
  • Code reviewed

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions