🎨 Palette: Search View Focus Management #1552
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: ['master'] | |
| pull_request: | |
| branches: ['master'] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| strategy: | |
| matrix: | |
| project: [language-server, vscode-extension] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Cache Bun dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: ${{ runner.os }}-bun-${{ matrix.project }}-${{ hashFiles(format('{0}/bun.lock', matrix.project)) }} | |
| restore-keys: | | |
| ${{ runner.os }}-bun-${{ matrix.project }}- | |
| - name: Install ripgrep dependency fallback | |
| working-directory: language-server | |
| run: bun install --no-save @vscode/ripgrep | |
| - name: Install Dependencies | |
| working-directory: ${{ matrix.project }} | |
| run: bun install --frozen-lockfile | |
| - name: Lint | |
| working-directory: ${{ matrix.project }} | |
| run: bun run lint | |
| test-language-server: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Cache Bun dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: ${{ runner.os }}-bun-ls-${{ hashFiles('language-server/bun.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-bun-ls- | |
| - name: Install ripgrep dependency fallback | |
| working-directory: language-server | |
| run: bun install --no-save @vscode/ripgrep | |
| - name: Install Dependencies | |
| working-directory: language-server | |
| run: bun install --frozen-lockfile | |
| - name: Run Language Server Tests | |
| working-directory: language-server | |
| run: | | |
| bun run build | |
| bun run test | |
| - name: Upload Language Server Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: language-server-dist | |
| path: language-server/dist | |
| retention-days: 1 | |
| test-vscode-extension: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Cache apt packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: /var/cache/apt/archives | |
| key: ${{ runner.os }}-apt-vsce-${{ hashFiles('.github/docker/ci.Dockerfile') }} | |
| restore-keys: | | |
| ${{ runner.os }}-apt-vsce- | |
| - name: Install system dependencies for VS Code headless | |
| run: | | |
| sudo apt-get update -yq | |
| sudo apt-get install -yq --no-install-recommends \ | |
| xvfb libasound2t64 libatk1.0-0t64 libgbm1 libgtk-3-0t64 \ | |
| libnss3 libxkbfile1 libxss1 unzip | |
| sudo apt-get clean | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Cache Bun dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: ${{ runner.os }}-bun-vscode-${{ hashFiles('vscode-extension/bun.lock', 'language-server/bun.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-bun-vscode- | |
| - name: Install ripgrep dependency fallback | |
| working-directory: language-server | |
| run: bun install --no-save @vscode/ripgrep | |
| - name: Install Dependencies | |
| run: | | |
| cd language-server && bun install --frozen-lockfile | |
| cd ../vscode-extension && bun install --frozen-lockfile | |
| - name: Build Language Server | |
| working-directory: language-server | |
| run: bun run build | |
| - name: Get VS Code test version | |
| id: vs-test-version | |
| working-directory: vscode-extension | |
| run: echo "version=$(node -e "const p=JSON.parse(require('fs').readFileSync('package.json','utf8')); console.log(p.devDependencies['@vscode/test-electron'] || p.dependencies['@vscode/test-electron'])")" >> $GITHUB_OUTPUT | |
| - name: Cache VS Code Binary | |
| uses: actions/cache@v4 | |
| with: | |
| path: vscode-extension/.vscode-test | |
| key: ${{ runner.os }}-vscode-${{ steps.vs-test-version.outputs.version }} | |
| restore-keys: | | |
| ${{ runner.os }}-vscode- | |
| - name: Type Check | |
| working-directory: vscode-extension | |
| run: bun run typecheck | |
| - name: Run VS Code Extension Tests | |
| working-directory: vscode-extension | |
| run: | | |
| bun run esbuild | |
| bun run scripts/copy-artifacts.ts | |
| bun run scripts/transpile-tests.ts | |
| xvfb-run -a node ./out/vscode-extension/src/test/runTest.js | |
| benchmarks: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 20 | |
| if: | | |
| (github.event_name == 'push' && github.ref == 'refs/heads/master') || | |
| github.event_name == 'workflow_dispatch' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Cache apt packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: /var/cache/apt/archives | |
| key: ${{ runner.os }}-apt-bench-${{ hashFiles('.github/docker/ci.Dockerfile') }} | |
| restore-keys: | | |
| ${{ runner.os }}-apt-bench- | |
| - name: Install system dependencies for VS Code headless | |
| run: | | |
| sudo apt-get update -yq | |
| sudo apt-get install -yq --no-install-recommends \ | |
| xvfb libasound2t64 libatk1.0-0t64 libgbm1 libgtk-3-0t64 \ | |
| libnss3 libxkbfile1 libxss1 unzip | |
| sudo apt-get clean | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Cache Bun dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.bun/install/cache | |
| key: ${{ runner.os }}-bun-bench-${{ hashFiles('language-server/bun.lock', 'vscode-extension/bun.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-bun-bench- | |
| - name: Install ripgrep dependency fallback | |
| working-directory: language-server | |
| run: bun install --no-save @vscode/ripgrep | |
| - name: Install Dependencies | |
| run: | | |
| cd language-server && bun install --frozen-lockfile | |
| cd ../vscode-extension && bun install --frozen-lockfile | |
| - name: Get VS Code test version | |
| id: vs-test-version | |
| working-directory: vscode-extension | |
| run: echo "version=$(node -e "const p=JSON.parse(require('fs').readFileSync('package.json','utf8')); console.log(p.devDependencies['@vscode/test-electron'] || p.dependencies['@vscode/test-electron'])")" >> $GITHUB_OUTPUT | |
| - name: Cache VS Code Binary | |
| uses: actions/cache@v4 | |
| with: | |
| path: vscode-extension/.vscode-test | |
| key: ${{ runner.os }}-vscode-bench-${{ steps.vs-test-version.outputs.version }} | |
| restore-keys: | | |
| ${{ runner.os }}-vscode-bench- | |
| - name: Run Benchmarks | |
| run: | | |
| chmod +x run_benchmarks.sh | |
| ./run_benchmarks.sh | |
| - name: Upload Benchmark Report | |
| if: always() | |
| run: | | |
| if [ -f benchmark_report.md ]; then | |
| cat benchmark_report.md >> $GITHUB_STEP_SUMMARY | |
| fi | |
| - name: Upload Benchmark Artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: benchmark-report | |
| path: benchmark_report.md |