Skip to content

Automated releases

Automated releases #2

Workflow file for this run

on:
push:
branches:
- main
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Automatic GitHub Release
uses: justincy/github-action-npm-release@2.0.1
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Node.js
uses: actions/setup-node@v4
if: steps.release.outputs.released == 'true'
with:
node-version: 20.x
- run: npm install
if: steps.release.outputs.released == 'true'
- name: Build VSIX
if: success() && steps.release.outputs.released == 'true'
run: npm run package
- name: Upload VSIX to Release
if: success() && steps.release.outputs.released == 'true'
uses: softprops/action-gh-release@v2
with:
files: "*.vsix"
tag_name: ${{ steps.release.outputs.tag_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check if VSCE_PAT exists
id: check_secret
if: steps.release.outputs.released == 'true'
run: |
if [ -n "${{ secrets.VSCE_PAT }}" ]; then
echo "has_secret=true" >> $GITHUB_OUTPUT
else
echo "has_secret=false" >> $GITHUB_OUTPUT
fi
- name: Publish
if: success() && steps.release.outputs.released == 'true' && steps.check_secret.outputs.has_secret == 'true'
run: npm run deploy
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}