Skip to content

Release

Release #7

Workflow file for this run

name: Release
on:
repository_dispatch:
types: [trigger-release]
workflow_dispatch: {}
jobs:
notify-start:
name: Notify when started
if: github.event.client_payload.github.event.issue.number && github.event.client_payload.commentId
runs-on: ubuntu-latest
steps:
- name: Update comment
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.client_payload.github.event.issue.number }}
comment-id: ${{ github.event.client_payload.commentId }}
body: |
🎁 Publishing to marketplaces...
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build:
name: Build
runs-on: ubuntu-latest
outputs:
vsixPath: ${{ steps.vsixBuild.outputs.vsixPath }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Build VSIX extension file
uses: HaaLeo/publish-vscode-extension@v1
id: vsixBuild
with:
dryRun: true
pat: stub
- name: Archive the extension build file
uses: actions/upload-artifact@v4
with:
name: extension
path: ${{ steps.vsixBuild.outputs.vsixPath }}
- name: Get release
id: release
uses: pepoviola/action-latest-release-info@v0.0.2
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Add VSIX release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: ${{ steps.vsixBuild.outputs.vsixPath }}
asset_name: ${{ steps.vsixBuild.outputs.vsixPath }}
asset_content_type: application/vsix
publish-vs:
name: VS Marketplace
needs: build
runs-on: ubuntu-latest
steps:
- name: Download built extension artifact
uses: actions/download-artifact@v4.1.8
id: download
with:
name: extension
- name: Publish to Visual Studio Marketplace
uses: HaaLeo/publish-vscode-extension@v1
with:
pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
registryUrl: https://marketplace.visualstudio.com
extensionFile: ${{ needs.build.outputs.vsixPath }}
packagePath: ""
publish-open-vsx:
name: Open VSX Registry
needs: build
runs-on: ubuntu-latest
steps:
- name: Download built extension artifact
uses: actions/download-artifact@v4.1.8
id: download
with:
name: extension
- name: Publish to Open VSX Registry
uses: HaaLeo/publish-vscode-extension@v1
id: publishToOpenVSX
with:
pat: ${{ secrets.OPEN_VSX_TOKEN }}
extensionFile: ${{ needs.build.outputs.vsixPath }}
packagePath: ""
notify-end:
name: Notify when finished
if: github.event.client_payload.github.event.issue.number && github.event.client_payload.commentId
needs: [publish-vs, publish-open-vsx]
runs-on: ubuntu-latest
steps:
- name: Update comment
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.client_payload.github.event.issue.number }}
comment-id: ${{ github.event.client_payload.commentId }}
body: |
🎉 Released!
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Close Issue
uses: peter-evans/close-issue@v3
with:
issue-number: ${{ github.event.client_payload.github.event.issue.number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}