build(deps): bump github/gh-aw-actions from ba90f2186d7ad780ec640f364005fa24e797b360 to abea67e08ee83539ea33aaae67bf0cddaa0b03b5 #372
Workflow file for this run
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: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint-workflows: | |
| name: Lint Workflows | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: raven-actions/actionlint@v2 | |
| with: | |
| flags: "-ignore SC2015 -ignore SC2086 -ignore string.should.not.be.empty" | |
| lint: | |
| name: Lint & Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| 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@v6 | |
| - uses: actions/setup-node@v6 | |
| 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@v6 | |
| - uses: actions/setup-node@v6 | |
| 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 | |
| lint-extension: | |
| name: Lint Extension | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| 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 eslint . | |
| working-directory: vscode-extension | |
| test: | |
| name: Test (Node ${{ matrix.node }}, ${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [22] | |
| os: [ubuntu-latest] | |
| include: | |
| - node: 22 | |
| os: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| 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@v7 | |
| with: | |
| name: coverage | |
| path: coverage | |
| if-no-files-found: ignore | |
| build: | |
| name: Build & Verify | |
| runs-on: ubuntu-latest | |
| needs: [lint, typecheck, typecheck-extension, test, lint-workflows, lint-extension] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| 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: | | |
| CLI_VERSION=$(node dist/index.js --version) | |
| PKG_VERSION=$(node -e "console.log(require('./package.json').version)") | |
| if [ "$CLI_VERSION" != "$PKG_VERSION" ]; then | |
| echo "::error::CLI version ($CLI_VERSION) does not match package.json ($PKG_VERSION)" | |
| exit 1 | |
| fi | |
| echo "CLI version: $CLI_VERSION ✓" | |
| - name: Build extension | |
| run: npm ci && node esbuild.mjs | |
| working-directory: vscode-extension |