name: Build & Release VS Code Extension on: push: tags: - 'v*.*.*' # Trigger on version tags like v1.0.0 jobs: release: runs-on: linux steps: # 1. Checkout the repository - name: Checkout code uses: actions/checkout@v3.5.3 # 2. Set up Node.js - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' # Match your extension's Node.js requirement cache: 'npm' # 3. Install dependencies - name: Install dependencies run: npm install # 4. Install vsce (VS Code Extension CLI) - name: Install vsce run: npm install -g @vscode/vsce # 5. Package the extension - name: Package Extension run: vsce package # 6. Create GitHub Release - name: Create Release id: create_release uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.ref_name }} env: GITHUB_TOKEN: ${{ secrets.releasekey }} # 7. Upload VSIX to the release - name: Upload VSIX uses: softprops/action-gh-release@v1 with: files: '*.vsix' env: GITHUB_TOKEN: ${{ secrets.releasekey }}