Skip to content

chore(release): 0.0.21 changelog entry #74

chore(release): 0.0.21 changelog entry

chore(release): 0.0.21 changelog entry #74

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
release:
types: [published]
jobs:
build-and-test:
name: Build and Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [20.x]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Install dependencies
run: npm ci
- name: Run format check
run: npm run format:check
- name: Run lint
run: npm run lint
- name: Compile TypeScript
run: npm run compile
# Note: Integration tests are not run in CI because VS Code debug sessions
# don't reliably initialize in headless CI environments. Tests run automatically
# via git pre-commit hooks for all local commits. See README for details.
package:
name: Package Extension
runs-on: ubuntu-latest
needs: build-and-test
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: npm
- name: Install dependencies
run: npm ci
- name: Install vsce
run: npm install -g @vscode/vsce
- name: Package extension
run: vsce package
- name: Upload VSIX artifact
uses: actions/upload-artifact@v4
with:
name: vsix-package
path: '*.vsix'
retention-days: 30
publish:
name: Publish to VS Code Marketplace
runs-on: ubuntu-latest
needs: package
if: github.event_name == 'release' && github.event.action == 'published'
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: npm
- name: Install dependencies
run: npm ci
- name: Install vsce
run: npm install -g @vscode/vsce
- name: Publish to VS Code Marketplace
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
run: vsce publish -p $VSCE_PAT
- name: Download VSIX artifact
uses: actions/download-artifact@v4
with:
name: vsix-package
- name: Upload VSIX to GitHub Release
uses: softprops/action-gh-release@v1
with:
files: '*.vsix'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}