add endpoint of get feedbacks #9187
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: Run Pytest | |
on: | |
pull_request: | |
branches: | |
- main | |
paths: | |
- api/** | |
- docker/** | |
- .github/workflows/api-tests.yml | |
concurrency: | |
group: api-tests-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
name: API Tests | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
python-version: | |
- "3.11" | |
- "3.12" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Setup UV and Python | |
uses: ./.github/actions/setup-uv | |
with: | |
python-version: ${{ matrix.python-version }} | |
uv-lockfile: api/uv.lock | |
- name: Check UV lockfile | |
run: uv lock --project api --check | |
- name: Install dependencies | |
run: uv sync --project api --dev | |
- name: Run Unit tests | |
run: | | |
uv run --project api bash dev/pytest/pytest_unit_tests.sh | |
# Extract coverage percentage and create a summary | |
TOTAL_COVERAGE=$(python -c 'import json; print(json.load(open("coverage.json"))["totals"]["percent_covered_display"])') | |
# Create a detailed coverage summary | |
echo "### Test Coverage Summary :test_tube:" >> $GITHUB_STEP_SUMMARY | |
echo "Total Coverage: ${TOTAL_COVERAGE}%" >> $GITHUB_STEP_SUMMARY | |
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY | |
uv run --project api coverage report >> $GITHUB_STEP_SUMMARY | |
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY | |
- name: Run dify config tests | |
run: uv run --project api dev/pytest/pytest_config_tests.py | |
- name: MyPy Cache | |
uses: actions/cache@v4 | |
with: | |
path: api/.mypy_cache | |
key: mypy-${{ matrix.python-version }}-${{ runner.os }}-${{ hashFiles('api/uv.lock') }} | |
- name: Run MyPy Checks | |
run: dev/mypy-check | |
- name: Set up dotenvs | |
run: | | |
cp docker/.env.example docker/.env | |
cp docker/middleware.env.example docker/middleware.env | |
- name: Expose Service Ports | |
run: sh .github/workflows/expose_service_ports.sh | |
- name: Set up Sandbox | |
uses: hoverkraft-tech/[email protected] | |
with: | |
compose-file: | | |
docker/docker-compose.middleware.yaml | |
services: | | |
sandbox | |
ssrf_proxy | |
- name: Run Workflow | |
run: uv run --project api bash dev/pytest/pytest_workflow.sh |