run-integration-tests.yml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. name: Run Integration Tests
  2. concurrency:
  3. group: ${{ github.workflow }}-${{ github.ref }}
  4. cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
  5. on:
  6. push:
  7. branches:
  8. - main
  9. pull_request:
  10. jobs:
  11. integration-tests:
  12. name: Integration Tests
  13. runs-on: ubuntu-latest
  14. strategy:
  15. fail-fast: false
  16. matrix:
  17. python-version: ["3.11"]
  18. agent: ["SWEAgent", "PlannerAgent", "MonologueAgent", "CodeActAgent"]
  19. sandbox: ["ssh", "exec"]
  20. include:
  21. - agent: "MonologueAgent"
  22. embedding-model: "local"
  23. - agent: "MonologueAgent"
  24. # sufficient to have one agent testing against local sandbox
  25. sandbox: "local"
  26. embedding-model: "local"
  27. - agent: "SWEAgent"
  28. embedding-model: "none"
  29. - agent: "PlannerAgent"
  30. embedding-model: "none"
  31. - agent: "CodeActAgent"
  32. embedding-model: "none"
  33. steps:
  34. - uses: actions/checkout@v4
  35. - name: Install poetry via pipx
  36. run: pipx install poetry
  37. - name: Set up Python
  38. uses: actions/setup-python@v5
  39. with:
  40. python-version: '3.11'
  41. cache: 'poetry'
  42. - name: Install Python dependencies using Poetry
  43. run: poetry install
  44. - name: Build Environment
  45. run: make build
  46. - name: Run Integration Tests
  47. env:
  48. SANDBOX_TYPE: ${{ matrix.sandbox }}
  49. AGENT: ${{ matrix.agent }}
  50. MAX_ITERATIONS: 10
  51. LLM_EMBEDDING_MODEL: ${{ matrix.embedding-model }}
  52. run: |
  53. rm -rf workspace
  54. mkdir workspace
  55. WORKSPACE_BASE="$GITHUB_WORKSPACE/workspace" \
  56. WORKSPACE_MOUNT_PATH="$GITHUB_WORKSPACE/workspace" \
  57. poetry run pytest --cov=agenthub --cov=opendevin --cov-report=xml \
  58. -s ./tests/integration
  59. - name: Upload coverage to Codecov
  60. uses: codecov/codecov-action@v4
  61. env:
  62. CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
  63. test_matrix_success:
  64. name: All Integration Tests Passed
  65. runs-on: ubuntu-latest
  66. needs: [integration-tests]
  67. steps:
  68. - run: echo Done!