code-qa.yml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. name: Code QA Roo Code
  2. on:
  3. workflow_dispatch:
  4. push:
  5. branches: [main]
  6. pull_request:
  7. types: [opened, reopened, ready_for_review, synchronize]
  8. branches: [main]
  9. jobs:
  10. qa:
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout code
  14. uses: actions/checkout@v4
  15. - name: Setup Node.js
  16. uses: actions/setup-node@v4
  17. with:
  18. node-version: '18'
  19. cache: 'npm'
  20. - name: Install dependencies
  21. run: npm run install:all
  22. - name: Run lint, check types, and esbuild
  23. run: npm run qa
  24. unit-test:
  25. runs-on: ubuntu-latest
  26. steps:
  27. - name: Checkout code
  28. uses: actions/checkout@v4
  29. - name: Setup Node.js
  30. uses: actions/setup-node@v4
  31. with:
  32. node-version: '18'
  33. cache: 'npm'
  34. - name: Install dependencies
  35. run: npm run install:all
  36. - name: Run unit tests
  37. run: npm test
  38. check-openrouter-api-key:
  39. runs-on: ubuntu-latest
  40. outputs:
  41. exists: ${{ steps.openrouter-api-key-check.outputs.defined }}
  42. steps:
  43. - name: Check if OpenRouter API key exists
  44. id: openrouter-api-key-check
  45. shell: bash
  46. run: |
  47. if [ "${{ secrets.OPENROUTER_API_KEY }}" != '' ]; then
  48. echo "defined=true" >> $GITHUB_OUTPUT;
  49. else
  50. echo "defined=false" >> $GITHUB_OUTPUT;
  51. fi
  52. integration-test:
  53. runs-on: ubuntu-latest
  54. needs: [check-openrouter-api-key]
  55. if: needs.check-openrouter-api-key.outputs.exists == 'true'
  56. steps:
  57. - name: Checkout code
  58. uses: actions/checkout@v4
  59. - name: Setup Node.js
  60. uses: actions/setup-node@v4
  61. with:
  62. node-version: '18'
  63. cache: 'npm'
  64. - name: Create env.e2e file
  65. run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.e2e
  66. - name: Install dependencies
  67. run: npm run install:all
  68. - name: Run end-to-end tests
  69. run: xvfb-run -a npm run e2e