fix: chunk large JCEF messages to prevent JetBrains sidebar freezes #4244
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: CLI PR Checks | |
| on: | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| issues: write | |
| jobs: | |
| track-rerun: | |
| runs-on: ubuntu-latest | |
| if: github.run_attempt > 1 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Track workflow rerun | |
| uses: ./.github/actions/track-rerun | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| cache: "npm" | |
| cache-dependency-path: extensions/cli/package-lock.json | |
| - name: Setup packages | |
| uses: ./.github/actions/setup-packages | |
| - name: Setup core component | |
| uses: ./.github/actions/setup-component | |
| with: | |
| component: core | |
| include-root: true | |
| - name: Build core | |
| run: | | |
| cd core | |
| npm run build | |
| - name: Install dependencies | |
| run: | | |
| cd extensions/cli | |
| npm ci --include=optional | |
| - name: Run linting | |
| run: | | |
| cd extensions/cli | |
| npm run lint | |
| test: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| node-version: [18, 20, 22, 24] | |
| fail-fast: false | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Cache CLI node_modules | |
| uses: actions/cache@v5 | |
| with: | |
| path: extensions/cli/node_modules | |
| key: ${{ runner.os }}-node${{ matrix.node-version }}-cli-modules-${{ hashFiles('extensions/cli/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node${{ matrix.node-version }}-cli-modules- | |
| - name: Setup packages | |
| uses: ./.github/actions/setup-packages | |
| - name: Setup core component | |
| uses: ./.github/actions/setup-component | |
| with: | |
| component: core | |
| include-root: true | |
| - name: Build core | |
| run: | | |
| cd core | |
| npm run build | |
| - name: Install dependencies | |
| run: | | |
| cd extensions/cli | |
| npm ci --include=optional | |
| - name: Build | |
| run: | | |
| cd extensions/cli | |
| npm run build | |
| - name: Run smoke tests | |
| run: | | |
| cd extensions/cli | |
| npm run test:smoke | |
| - name: Run tests | |
| run: | | |
| cd extensions/cli | |
| npm test | |
| # e2e tests are failing on Windows specifically - likely due to stdout flush issues | |
| - name: Run e2e tests | |
| if: matrix.os != 'windows-latest' | |
| run: | | |
| cd extensions/cli | |
| npm run test:e2e | |
| smoke-api: | |
| # Only runs when secrets are available (not on fork PRs) | |
| if: github.event.pull_request.head.repo.full_name == github.repository | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| cache: "npm" | |
| cache-dependency-path: extensions/cli/package-lock.json | |
| - name: Setup packages | |
| uses: ./.github/actions/setup-packages | |
| - name: Setup core component | |
| uses: ./.github/actions/setup-component | |
| with: | |
| component: core | |
| include-root: true | |
| - name: Build core | |
| run: | | |
| cd core | |
| npm run build | |
| - name: Install dependencies | |
| run: | | |
| cd extensions/cli | |
| npm ci --include=optional | |
| - name: Build | |
| run: | | |
| cd extensions/cli | |
| npm run build | |
| - name: Run smoke API tests | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| CONTINUE_API_KEY: ${{ secrets.CONTINUE_API_KEY }} | |
| run: | | |
| cd extensions/cli | |
| npm run test:smoke-api | |
| # GitHub does not have a way of requiring that all checks pass (you must manually select each job) | |
| # This action at least lets us manage the list of required tests via source control | |
| # so that creators of new jobs can add them to this list | |
| require-all-checks-to-pass-cli: | |
| if: always() | |
| runs-on: ubuntu-latest | |
| needs: | |
| - lint | |
| - test | |
| - smoke-api | |
| steps: | |
| - name: Decide whether the needed jobs succeeded or failed | |
| uses: re-actors/alls-green@release/v1 | |
| with: | |
| # smoke-api is allowed to skip for fork PRs that lack secrets | |
| allowed-skips: smoke-api | |
| jobs: ${{ toJSON(needs) }} |