|
|
@@ -1,151 +1,151 @@
|
|
|
name: Code QA Kilo Code
|
|
|
|
|
|
on:
|
|
|
- workflow_dispatch:
|
|
|
- push:
|
|
|
- branches: [main]
|
|
|
- pull_request:
|
|
|
- types: [opened, reopened, ready_for_review, synchronize]
|
|
|
- branches: [main]
|
|
|
+ workflow_dispatch:
|
|
|
+ push:
|
|
|
+ branches: [main]
|
|
|
+ pull_request:
|
|
|
+ types: [opened, reopened, ready_for_review, synchronize]
|
|
|
+ branches: [main]
|
|
|
|
|
|
env:
|
|
|
- NODE_VERSION: 20.18.1
|
|
|
- PNPM_VERSION: 10.8.1
|
|
|
+ NODE_VERSION: 20.18.1
|
|
|
+ PNPM_VERSION: 10.8.1
|
|
|
|
|
|
jobs:
|
|
|
- compile:
|
|
|
- runs-on: ubuntu-latest
|
|
|
- steps:
|
|
|
- - name: Checkout code
|
|
|
- uses: actions/checkout@v4
|
|
|
- - name: Install pnpm
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
- with:
|
|
|
- version: ${{ env.PNPM_VERSION }}
|
|
|
- - name: Setup Node.js
|
|
|
- uses: actions/setup-node@v4
|
|
|
- with:
|
|
|
- node-version: ${{ env.NODE_VERSION }}
|
|
|
- cache: 'pnpm'
|
|
|
- - name: Install dependencies
|
|
|
- run: pnpm install
|
|
|
- - name: Build
|
|
|
- run: pnpm build
|
|
|
- - name: Check types
|
|
|
- run: pnpm check-types
|
|
|
- - name: Lint
|
|
|
- run: pnpm lint
|
|
|
+ compile:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: Checkout code
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ - name: Install pnpm
|
|
|
+ uses: pnpm/action-setup@v4
|
|
|
+ with:
|
|
|
+ version: ${{ env.PNPM_VERSION }}
|
|
|
+ - name: Setup Node.js
|
|
|
+ uses: actions/setup-node@v4
|
|
|
+ with:
|
|
|
+ node-version: ${{ env.NODE_VERSION }}
|
|
|
+ cache: "pnpm"
|
|
|
+ - 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@v4
|
|
|
- - name: Install pnpm
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
- with:
|
|
|
- version: ${{ env.PNPM_VERSION }}
|
|
|
- - name: Setup Node.js
|
|
|
- uses: actions/setup-node@v4
|
|
|
- with:
|
|
|
- node-version: '18'
|
|
|
- cache: 'pnpm'
|
|
|
- - name: Install dependencies
|
|
|
- run: pnpm install
|
|
|
- - name: Verify all translations are complete
|
|
|
- run: node scripts/find-missing-translations.js
|
|
|
+ check-translations:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: Checkout code
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ - name: Install pnpm
|
|
|
+ uses: pnpm/action-setup@v4
|
|
|
+ with:
|
|
|
+ version: ${{ env.PNPM_VERSION }}
|
|
|
+ - name: Setup Node.js
|
|
|
+ uses: actions/setup-node@v4
|
|
|
+ with:
|
|
|
+ node-version: "18"
|
|
|
+ cache: "pnpm"
|
|
|
+ - 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@v4
|
|
|
- - name: Install pnpm
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
- with:
|
|
|
- version: ${{ env.PNPM_VERSION }}
|
|
|
- - name: Setup Node.js
|
|
|
- uses: actions/setup-node@v4
|
|
|
- with:
|
|
|
- node-version: ${{ env.NODE_VERSION }}
|
|
|
- cache: 'pnpm'
|
|
|
- - name: Install dependencies
|
|
|
- run: pnpm install
|
|
|
- - name: Build (to build and copy WASM files)
|
|
|
- run: pnpm build
|
|
|
- - name: Run unit tests
|
|
|
- working-directory: src
|
|
|
- run: pnpm test
|
|
|
+ test-extension:
|
|
|
+ runs-on: ${{ matrix.os }}
|
|
|
+ strategy:
|
|
|
+ matrix:
|
|
|
+ os: [ubuntu-latest, windows-latest]
|
|
|
+ steps:
|
|
|
+ - name: Checkout code
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ - name: Install pnpm
|
|
|
+ uses: pnpm/action-setup@v4
|
|
|
+ with:
|
|
|
+ version: ${{ env.PNPM_VERSION }}
|
|
|
+ - name: Setup Node.js
|
|
|
+ uses: actions/setup-node@v4
|
|
|
+ with:
|
|
|
+ node-version: ${{ env.NODE_VERSION }}
|
|
|
+ cache: "pnpm"
|
|
|
+ - name: Install dependencies
|
|
|
+ run: pnpm install
|
|
|
+ - name: Build (to build and copy WASM files)
|
|
|
+ run: pnpm build
|
|
|
+ - name: Run 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@v4
|
|
|
- - name: Install pnpm
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
- with:
|
|
|
- version: ${{ env.PNPM_VERSION }}
|
|
|
- - name: Setup Node.js
|
|
|
- uses: actions/setup-node@v4
|
|
|
- with:
|
|
|
- node-version: '18'
|
|
|
- cache: 'pnpm'
|
|
|
- - name: Install dependencies
|
|
|
- run: pnpm install
|
|
|
- - name: Run unit tests
|
|
|
- working-directory: webview-ui
|
|
|
- run: pnpm test
|
|
|
+ test-webview:
|
|
|
+ runs-on: ${{ matrix.os }}
|
|
|
+ strategy:
|
|
|
+ matrix:
|
|
|
+ os: [ubuntu-latest, windows-latest]
|
|
|
+ steps:
|
|
|
+ - name: Checkout code
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ - name: Install pnpm
|
|
|
+ uses: pnpm/action-setup@v4
|
|
|
+ with:
|
|
|
+ version: ${{ env.PNPM_VERSION }}
|
|
|
+ - name: Setup Node.js
|
|
|
+ uses: actions/setup-node@v4
|
|
|
+ with:
|
|
|
+ node-version: "18"
|
|
|
+ cache: "pnpm"
|
|
|
+ - 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."
|
|
|
+ unit-test:
|
|
|
+ needs: [test-extension, test-webview]
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: NO-OP
|
|
|
+ run: echo "All unit tests passed."
|
|
|
|
|
|
- check-openrouter-api-key:
|
|
|
- runs-on: ubuntu-latest
|
|
|
- outputs:
|
|
|
- exists: ${{ steps.openrouter-api-key-check.outputs.defined }}
|
|
|
- steps:
|
|
|
- - name: Check if OpenRouter API key exists
|
|
|
- id: openrouter-api-key-check
|
|
|
- shell: bash
|
|
|
- run: |
|
|
|
- if [ "${{ secrets.OPENROUTER_API_KEY }}" != '' ]; then
|
|
|
- echo "defined=true" >> $GITHUB_OUTPUT;
|
|
|
- else
|
|
|
- echo "defined=false" >> $GITHUB_OUTPUT;
|
|
|
- fi
|
|
|
+ # check-openrouter-api-key:
|
|
|
+ # runs-on: ubuntu-latest
|
|
|
+ # outputs:
|
|
|
+ # exists: ${{ steps.openrouter-api-key-check.outputs.defined }}
|
|
|
+ # steps:
|
|
|
+ # - name: Check if OpenRouter API key exists
|
|
|
+ # id: openrouter-api-key-check
|
|
|
+ # shell: bash
|
|
|
+ # run: |
|
|
|
+ # if [ "${{ secrets.OPENROUTER_API_KEY }}" != '' ]; then
|
|
|
+ # echo "defined=true" >> $GITHUB_OUTPUT;
|
|
|
+ # else
|
|
|
+ # echo "defined=false" >> $GITHUB_OUTPUT;
|
|
|
+ # fi
|
|
|
|
|
|
- integration-test:
|
|
|
- runs-on: ubuntu-latest
|
|
|
- needs: [check-openrouter-api-key]
|
|
|
- if: needs.check-openrouter-api-key.outputs.exists == 'true'
|
|
|
- steps:
|
|
|
- - name: Checkout code
|
|
|
- uses: actions/checkout@v4
|
|
|
- - name: Install pnpm
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
- with:
|
|
|
- version: ${{ env.PNPM_VERSION }}
|
|
|
- - name: Setup Node.js
|
|
|
- uses: actions/setup-node@v4
|
|
|
- with:
|
|
|
- node-version: ${{ env.NODE_VERSION }}
|
|
|
- cache: 'pnpm'
|
|
|
- - name: Install dependencies
|
|
|
- run: npx pnpm install
|
|
|
- - name: Create .env.local file
|
|
|
- working-directory: e2e
|
|
|
- run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
|
|
|
- - name: Run integration tests
|
|
|
- working-directory: e2e
|
|
|
- run: xvfb-run -a pnpm ci
|
|
|
+ # integration-test:
|
|
|
+ # runs-on: ubuntu-latest
|
|
|
+ # needs: [check-openrouter-api-key]
|
|
|
+ # if: needs.check-openrouter-api-key.outputs.exists == 'true'
|
|
|
+ # steps:
|
|
|
+ # - name: Checkout code
|
|
|
+ # uses: actions/checkout@v4
|
|
|
+ # - name: Install pnpm
|
|
|
+ # uses: pnpm/action-setup@v4
|
|
|
+ # with:
|
|
|
+ # version: ${{ env.PNPM_VERSION }}
|
|
|
+ # - name: Setup Node.js
|
|
|
+ # uses: actions/setup-node@v4
|
|
|
+ # with:
|
|
|
+ # node-version: ${{ env.NODE_VERSION }}
|
|
|
+ # cache: 'pnpm'
|
|
|
+ # - name: Install dependencies
|
|
|
+ # run: npx pnpm install
|
|
|
+ # - name: Create .env.local file
|
|
|
+ # working-directory: e2e
|
|
|
+ # run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
|
|
|
+ # - name: Run integration tests
|
|
|
+ # working-directory: e2e
|
|
|
+ # run: xvfb-run -a pnpm ci
|