Files
clice/.github/workflows/vscode.yml
2025-11-28 00:37:22 +08:00

56 lines
1.3 KiB
YAML

name: CI/CD VS Code Extension
on:
push:
tags: ["v*"]
branches: ["main"]
paths: ["editors/vscode/**"]
pull_request:
branches: ["main"]
paths: ["editors/vscode/**"]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: write
defaults:
run:
working-directory: editors/vscode
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: Install vsce
run: npm install -g vsce
- name: Publish and Package to Marketplace
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
run: |
FLAG="${{ contains(github.ref_name, '-') && '--pre-release' || '' }}"
npm run package -- $FLAG
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then
npm run publish -- -p "$VSCE_PAT" $FLAG
fi
- name: Upload .vsix to Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: "editors/vscode/*.vsix"
tag_name: ${{ github.ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}