semantic-release-vsce

Semantic release plugin for Visual Stuio Code extensions
Add config to package.json
Use semantic-release-vsce
as part of verifyConditions
and publish
.
{
"scripts": {
"semantic-release": "semantic-release"
},
"release": {
"verifyConditions": [
"semantic-release-vsce",
"@semantic-release/github"
],
"prepare": {
"path": "semantic-release-vsce",
"packageVsix": "your-extension.vsix"
},
"publish": [
"semantic-release-vsce",
{
"path": "@semantic-release/github",
"assets": "your-extension.vsix"
}
]
},
"devDependencies": {
"semantic-release": "^15.0.0",
"semantic-release-vsce": "^2.1.0",
}
}
If packageVsix
is set, will also generate a .vsix file at the set file path after publishing.
It is recommended to upload this to your GitHub release page so your users can easily rollback to an earlier version if a version ever introduces a bad bug.
Working with older versions
This example is for semantic-release
v15.
Prior to v15, prepare
was part of publish
- if you are using v14, you must pass the packageVsix
option to publish
instead.
Prior to v13, you had to override getLastRelease
to use @semantic-release/git
instead of the default @semantic-release/npm
. This is no longer needed.
Travis example
Secret environment variables: VSCE_TOKEN
Example:
cache:
directories:
- ~/.npm
script:
- npm test
stages:
- test
- name: release
if: branch = master AND type = push AND fork = false
jobs:
include:
- stage: release
language: node_js
node_js: '8'
script: npm run semantic-release