Release 2.0.0 #27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |