Skip to content

feat: consolidate vnext workstream (supersedes #12) #24

feat: consolidate vnext workstream (supersedes #12)

feat: consolidate vnext workstream (supersedes #12) #24

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
lint:
name: Lint & Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- name: Lint
run: npm run lint
- name: Format check
run: npm run format:check
typecheck:
name: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run typecheck
typecheck-extension:
name: Typecheck Extension
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: |
package-lock.json
vscode-extension/package-lock.json
- run: npm ci
- run: npm ci
working-directory: vscode-extension
- run: npx tsc --noEmit
working-directory: vscode-extension
test:
name: Test (Node ${{ matrix.node }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
node: [20, 22]
os: [ubuntu-latest]
include:
- node: 22
os: windows-latest
- node: 22
os: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm
- run: npm ci
- name: Test
run: npm run test:coverage
- name: Upload coverage
if: matrix.node == 22 && matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: coverage
path: coverage
if-no-files-found: ignore
build:
name: Build & Verify
runs-on: ubuntu-latest
needs: [lint, typecheck, typecheck-extension, test]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: |
package-lock.json
vscode-extension/package-lock.json
- run: npm ci
- run: npm run build
- name: Verify CLI
run: node dist/index.js --version
- name: Build extension
run: npm ci && node esbuild.mjs
working-directory: vscode-extension