Switch to a pnpm-based monorepo with turbo #5295
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: Code QA Roo Code | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| types: [opened, reopened, ready_for_review, synchronize] | |
| branches: [main] | |
| env: | |
| NODE_VERSION: 20.18.1 | |
| jobs: | |
| compile: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Compile | |
| run: pnpm compile | |
| - 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: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Verify all translations are complete | |
| run: node scripts/find-missing-translations.js | |
| knip: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Run knip checks | |
| run: pnpm knip | |
| test-extension: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Compile (to build and copy WASM files) | |
| run: pnpm compile | |
| - name: Run unit tests | |
| run: npx jest --silent | |
| test-webview: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Run unit tests | |
| working-directory: webview-ui | |
| run: npx jest --silent | |
| 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 | |
| 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: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: 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 |