| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- name: Code QA Kilo Code
- on:
- workflow_dispatch:
- push:
- branches: [main]
- pull_request:
- types: [opened, reopened, ready_for_review, synchronize]
- branches: [main]
- env:
- NODE_VERSION: 20.20.0
- PNPM_VERSION: 10.8.1
- TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
- TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
- jobs:
- compile:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: "pnpm"
- - name: Turbo cache setup
- uses: actions/cache@v5
- with:
- path: .turbo
- key: ${{ runner.os }}-turbo-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-turbo-
- - name: Install dependencies
- run: pnpm install
- - name: Build
- run: pnpm build
- - name: Check types
- run: pnpm check-types
- - name: Lint
- run: pnpm lint
- check-translations:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: "18"
- cache: "pnpm"
- - name: Turbo cache setup
- uses: actions/cache@v5
- with:
- path: .turbo
- key: ${{ runner.os }}-turbo-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-turbo-
- - name: Install dependencies
- run: pnpm install
- - name: Verify all translations are complete
- run: node scripts/find-missing-translations.js
- test-extension:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ubuntu-latest, windows-latest]
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: "pnpm"
- - name: Turbo cache setup
- uses: actions/cache@v5
- with:
- path: .turbo
- key: ${{ runner.os }}-turbo-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-turbo-
- - name: Install dependencies
- run: pnpm install
- - name: Build (to build and copy WASM files)
- run: pnpm run vsix
- shell: bash
- - name: Run packages/types tests
- working-directory: packages/types
- run: pnpm test
- - name: Run packages/cloud tests
- working-directory: packages/cloud
- run: pnpm test
- - name: Run packages/telemetry tests
- working-directory: packages/telemetry
- run: pnpm test
- - name: Run extension unit tests
- working-directory: src
- run: pnpm test
- test-webview:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ubuntu-latest, windows-latest]
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: "18"
- cache: "pnpm"
- - name: Turbo cache setup
- uses: actions/cache@v5
- with:
- path: .turbo
- key: ${{ runner.os }}-turbo-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-turbo-
- - name: Install dependencies
- run: pnpm install
- - name: Run unit tests
- working-directory: webview-ui
- run: pnpm test
- unit-test:
- needs: [test-extension, test-webview]
- runs-on: ubuntu-latest
- steps:
- - name: NO-OP
- run: echo "All unit tests passed."
- test-jetbrains:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- with:
- submodules: recursive
- lfs: true
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: "pnpm"
- - uses: actions/setup-java@v5
- with:
- distribution: "jetbrains"
- java-version: "21"
- check-latest: false
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Setup Gradle
- uses: gradle/actions/setup-gradle@v5
- with:
- cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- - name: Install system dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y \
- libx11-dev \
- libxkbfile-dev \
- pkg-config \
- build-essential \
- python3
- - name: Turbo cache setup
- uses: actions/cache@v5
- with:
- path: .turbo
- key: ${{ runner.os }}-turbo-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-turbo-
- - name: Install dependencies
- run: pnpm install
- - name: Build
- run: pnpm run jetbrains:build
- shell: bash
- test-cli:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v6
- - name: Install pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: "pnpm"
- - name: Turbo cache setup
- uses: actions/cache@v5
- with:
- path: .turbo
- key: ${{ runner.os }}-turbo-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-turbo-
- - name: Install dependencies
- run: pnpm install
- - name: Run unit tests
- working-directory: cli
- run: pnpm test
|