Skip to content

Config-driven validation categories #13

Config-driven validation categories

Config-driven validation categories #13

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
# A newer push to the same branch supersedes an in-flight run.
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
verify:
name: Lint, typecheck, build, test (Node ${{ matrix.node }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# 20 is the target the MCP bundle is built for; 22 is current LTS.
node: [20, 22]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node }}
cache: npm
- name: Install
run: npm ci
- name: Lint
run: npm run lint
# eslint-plugin-prettier only covers TS; this catches md/json/yml drift.
- name: Format check
run: npm run format:check
- name: Typecheck
run: npm run typecheck
- name: Build
run: npm run build
- name: Test
run: npm test
package:
name: Package VSIX
runs-on: ubuntu-latest
needs: verify
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 22
cache: npm
- name: Install
run: npm ci
- name: Build
run: npm run build
# Builds the extension package so packaging drift is caught here rather
# than by someone discovering a stale committed .vsix months later.
# Uploaded as a CI artifact only — nothing is published.
- name: Package
run: npm run package
- uses: actions/upload-artifact@v5
with:
name: coding-guidelines-agent-vsix
path: '*.vsix'
if-no-files-found: error