name: chat-lib tests on: pull_request: workflow_dispatch: permissions: contents: read concurrency: group: chat-lib-tests-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: test: name: chat-lib tests (${{ matrix.os }}) runs-on: ${{ matrix.os }} timeout-minutes: 30 strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - name: Checkout uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version-file: extensions/copilot/.nvmrc cache: npm cache-dependency-path: | extensions/copilot/package-lock.json extensions/copilot/chat-lib/package-lock.json - name: Extract chat-lib shell: bash working-directory: extensions/copilot run: | npm ci npm run extract-chat-lib rm -rf node_modules - name: Install chat-lib dependencies working-directory: extensions/copilot/chat-lib run: npm ci - name: Build chat-lib working-directory: extensions/copilot/chat-lib run: npm run build - name: Test chat-lib working-directory: extensions/copilot/chat-lib run: npm test