Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 22 additions & 11 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
name: Publish VS Code Extension

on:
release:
types: [published]

workflow_dispatch:

permissions:
contents: write
contents: read

jobs:
build:
name: Build & Package VSIX
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Node.js
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
Expand All @@ -26,58 +31,64 @@ jobs:
- name: Compile TypeScript
run: npm run compile

- name: Install vsce
- name: Install vsce CLI
run: npm install -g @vscode/vsce

- name: Create VSIX package
run: vsce package
run: vsce package --no-yarn

- name: Upload VSIX artifact
uses: actions/upload-artifact@v4
with:
name: extension
path: "*.vsix"

release:
attach-release:
name: Attach VSIX to GitHub Release
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
if: github.event_name == 'release'

steps:
- name: Download VSIX artifact
uses: actions/download-artifact@v4
with:
name: extension

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
- name: Upload VSIX to GitHub Release
uses: softprops/action-gh-release@v2
with:
files: "*.vsix"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

publish:
name: Publish to VS Code Marketplace
needs: release
needs: build
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Install Node.js
- name: Checkout repository
uses: actions/checkout@v4

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install vsce
- name: Install vsce CLI
run: npm install -g @vscode/vsce

- name: Download VSIX artifact
uses: actions/download-artifact@v4
with:
name: extension

- name: Publish to VSCode Marketplace
- name: Publish to VS Code Marketplace
run: vsce publish --packagePath *.vsix
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}