api-tests.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. name: Run Pytest
  2. on:
  3. pull_request:
  4. branches:
  5. - main
  6. paths:
  7. - api/**
  8. - docker/**
  9. concurrency:
  10. group: api-tests-${{ github.head_ref || github.run_id }}
  11. cancel-in-progress: true
  12. jobs:
  13. test:
  14. runs-on: ubuntu-latest
  15. strategy:
  16. matrix:
  17. python-version:
  18. - "3.10"
  19. - "3.11"
  20. steps:
  21. - name: Checkout code
  22. uses: actions/checkout@v4
  23. - name: Set up Python ${{ matrix.python-version }}
  24. uses: actions/setup-python@v5
  25. with:
  26. python-version: ${{ matrix.python-version }}
  27. cache: 'pip'
  28. cache-dependency-path: |
  29. ./api/requirements.txt
  30. ./api/requirements-dev.txt
  31. - name: Install dependencies
  32. run: pip install -r ./api/requirements.txt -r ./api/requirements-dev.txt
  33. - name: Run Unit tests
  34. run: dev/pytest/pytest_unit_tests.sh
  35. - name: Run ModelRuntime
  36. run: dev/pytest/pytest_model_runtime.sh
  37. - name: Run Tool
  38. run: dev/pytest/pytest_tools.sh
  39. - name: Set up Sandbox
  40. uses: hoverkraft-tech/compose-action@v2.0.0
  41. with:
  42. compose-file: |
  43. docker/docker-compose.middleware.yaml
  44. services: |
  45. sandbox
  46. ssrf_proxy
  47. - name: Run Workflow
  48. run: dev/pytest/pytest_workflow.sh
  49. - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma)
  50. uses: hoverkraft-tech/compose-action@v2.0.0
  51. with:
  52. compose-file: |
  53. docker/docker-compose.middleware.yaml
  54. docker/docker-compose.qdrant.yaml
  55. docker/docker-compose.milvus.yaml
  56. docker/docker-compose.pgvecto-rs.yaml
  57. docker/docker-compose.pgvector.yaml
  58. docker/docker-compose.chroma.yaml
  59. docker/docker-compose.oracle.yaml
  60. services: |
  61. weaviate
  62. qdrant
  63. etcd
  64. minio
  65. milvus-standalone
  66. pgvecto-rs
  67. pgvector
  68. chroma
  69. oracle
  70. - name: Test Vector Stores
  71. run: dev/pytest/pytest_vdb.sh
  72. test-in-poetry:
  73. name: API Tests
  74. runs-on: ubuntu-latest
  75. strategy:
  76. matrix:
  77. python-version:
  78. - "3.10"
  79. - "3.11"
  80. steps:
  81. - name: Checkout code
  82. uses: actions/checkout@v4
  83. - name: Install Poetry
  84. uses: abatilo/actions-poetry@v3
  85. - name: Set up Python ${{ matrix.python-version }}
  86. uses: actions/setup-python@v5
  87. with:
  88. python-version: ${{ matrix.python-version }}
  89. cache: 'poetry'
  90. cache-dependency-path: |
  91. api/pyproject.toml
  92. api/poetry.lock
  93. - name: Poetry check
  94. run: |
  95. poetry check -C api --lock
  96. poetry show -C api
  97. - name: Install dependencies
  98. run: poetry install -C api --with dev
  99. - name: Run Unit tests
  100. run: poetry run -C api bash dev/pytest/pytest_unit_tests.sh
  101. - name: Run ModelRuntime
  102. run: poetry run -C api bash dev/pytest/pytest_model_runtime.sh
  103. - name: Run Tool
  104. run: poetry run -C api bash dev/pytest/pytest_tools.sh
  105. - name: Set up Sandbox
  106. uses: hoverkraft-tech/compose-action@v2.0.0
  107. with:
  108. compose-file: |
  109. docker/docker-compose.middleware.yaml
  110. services: |
  111. sandbox
  112. ssrf_proxy
  113. - name: Run Workflow
  114. run: poetry run -C api bash dev/pytest/pytest_workflow.sh
  115. - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma)
  116. uses: hoverkraft-tech/compose-action@v2.0.0
  117. with:
  118. compose-file: |
  119. docker/docker-compose.middleware.yaml
  120. docker/docker-compose.qdrant.yaml
  121. docker/docker-compose.milvus.yaml
  122. docker/docker-compose.pgvecto-rs.yaml
  123. docker/docker-compose.pgvector.yaml
  124. docker/docker-compose.chroma.yaml
  125. docker/docker-compose.oracle.yaml
  126. services: |
  127. weaviate
  128. qdrant
  129. etcd
  130. minio
  131. milvus-standalone
  132. pgvecto-rs
  133. pgvector
  134. chroma
  135. oracle
  136. - name: Test Vector Stores
  137. run: poetry run -C api bash dev/pytest/pytest_vdb.sh