chore(deps): update dependency globals to v17.7.0 #486
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
| # Continuous Integration pipeline. Edits to this file require admin sign-off | |
| # via CODEOWNERS (see .github/CODEOWNERS). | |
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [dev, main] | |
| permissions: | |
| contents: read | |
| # Opt JS actions into Node 24 ahead of GitHub's June 2026 default flip. | |
| # Drop this once the default flip happens and all third-party actions ship | |
| # Node-24-native versions. | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| defaults: | |
| run: | |
| working-directory: extension | |
| jobs: | |
| typecheck: | |
| name: Type check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: extension/package-lock.json | |
| - run: npm ci | |
| - run: npm run check-types | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: extension/package-lock.json | |
| - run: npm ci | |
| - run: npm run lint | |
| test: | |
| name: Unit tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: extension/package-lock.json | |
| - run: npm ci | |
| - run: npx vitest run | |
| knip: | |
| name: Dead code (knip) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: extension/package-lock.json | |
| - run: npm ci | |
| - run: npm run knip | |
| build: | |
| name: Build & VSIX package | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: extension/package-lock.json | |
| - run: npm ci | |
| - run: npm run package | |
| - run: npx @vscode/vsce package --no-dependencies | |
| - name: Build Open VSX (clean) variant | |
| run: node esbuild.js --production --variant=openvsx | |
| - name: Verify clean bundle excludes recorder/consent | |
| run: node scripts/verify-clean-bundle.js | |
| viewer-lint: | |
| name: Viewer lint | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| defaults: | |
| run: | |
| working-directory: recording-viewer | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: recording-viewer/package-lock.json | |
| - run: npm ci | |
| - run: npm run lint | |
| viewer-test: | |
| name: Viewer unit tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| defaults: | |
| run: | |
| working-directory: recording-viewer | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: recording-viewer/package-lock.json | |
| - run: npm ci | |
| - run: npx vitest run | |
| viewer-build: | |
| name: Viewer build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| defaults: | |
| run: | |
| working-directory: recording-viewer | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: recording-viewer/package-lock.json | |
| - run: npm ci | |
| - run: npm run build | |
| ci-gate: | |
| name: CI gate | |
| needs: [typecheck, lint, test, knip, build, viewer-lint, viewer-test, viewer-build] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 1 | |
| if: always() | |
| defaults: | |
| run: | |
| working-directory: . | |
| steps: | |
| - name: Verify all required jobs succeeded | |
| env: | |
| NEEDS: ${{ toJSON(needs) }} | |
| run: | | |
| set -euo pipefail | |
| echo "Job results: $NEEDS" | |
| if echo "$NEEDS" | jq -e '[.[] | .result] | any(. != "success")' > /dev/null; then | |
| echo "::error::One or more required CI jobs did not succeed" | |
| exit 1 | |
| fi | |
| echo "All CI jobs passed." |