Semantic release plugin for vs code extensions
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
.eslintrc
.gitignore
.travis.yml
LICENSE
README.md
index.js
package-lock.json
package.json

README.md

semantic-release-vsce

npm downloads build dependencies peerDependencies Greenkeeper semantic-release

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:

# .travis.yml

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