Repository navigation
fix(tui): keep every word of an unquoted --print/--json message #15942
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: Unit Tests | |
| on: | |
| push: | |
| branches: [ 'main', '*-dev' ] | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| concurrency: | |
| group: unit-tests-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| default-install-collection: | |
| # The main job installs --extra postgres; this job proves the documented | |
| # contributor path (uv sync --group dev, no extras) still collects the | |
| # whole suite, so optional-dependency imports must stay lazy. | |
| if: github.event.pull_request.draft == false | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| # Must match backend/Dockerfile's UV_IMAGE tag; pinned by backend/tests/test_ci_uv_version_pin.py | |
| version: "0.11.1" | |
| - name: Install backend dependencies (documented default) | |
| working-directory: backend | |
| run: uv sync --group dev | |
| - name: Collect backend tests | |
| working-directory: backend | |
| run: uv run pytest --collect-only -q | |
| backend-unit-tests: | |
| if: github.event.pull_request.draft == false | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| strategy: | |
| # Duration-aware split: `make test-shard` balances the shards by real | |
| # wall-clock cost from backend/.test_durations (read-only for shards, so | |
| # concurrent jobs never race writes on it). Every test runs exactly once. | |
| # Fail-fast is off so a failing shard reports its tests without cancelling | |
| # its peers. | |
| fail-fast: false | |
| matrix: | |
| shard: [1, 2, 3, 4] | |
| services: | |
| postgres: | |
| image: postgres:17 | |
| env: | |
| POSTGRES_USER: deerflow | |
| POSTGRES_PASSWORD: deerflow | |
| POSTGRES_DB: deerflow_test | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| redis: | |
| image: redis:7-alpine | |
| ports: | |
| - 6379:6379 | |
| options: >- | |
| --health-cmd "redis-cli ping" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| env: | |
| TEST_POSTGRES_URI: postgresql://deerflow:deerflow@localhost:5432/deerflow_test?sslmode=disable | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| # Must match backend/Dockerfile's UV_IMAGE tag; pinned by backend/tests/test_ci_uv_version_pin.py | |
| version: "0.11.1" | |
| - name: Install backend dependencies | |
| working-directory: backend | |
| run: uv sync --group dev --extra postgres | |
| - name: Run unit tests of backend (shard ${{ matrix.shard }} of 4) | |
| working-directory: backend | |
| env: | |
| # Expose the job's Postgres service to the cross-pod dedupe integration | |
| # tests (issue #4120), which read DEDUPE_TEST_POSTGRES_URL. Without this | |
| # mapping those tests silently skip and the headline capability is never | |
| # exercised in CI. | |
| DEDUPE_TEST_POSTGRES_URL: ${{ env.TEST_POSTGRES_URI }} | |
| run: make test-shard SPLITS=4 GROUP=${{ matrix.shard }} |