Skip to content

DRU-650 -- Other files reach the chat agent as links #1804

DRU-650 -- Other files reach the chat agent as links

DRU-650 -- Other files reach the chat agent as links #1804

name: On Pull Request Backend
on:
pull_request:
branches: [main, "codex/**"]
concurrency:
group: on-pull-request-backend-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: read
jobs:
backend:
# Branch protection requires the "backend" check, so the 3.11 job keeps that name.
name: ${{ matrix.name }}
runs-on: ubuntu-latest
# A stalled await must terminate before the runner limit.
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
- name: backend
python-version: "3.11"
- name: backend (3.14)
python-version: "3.14"
# Test services use druks.testing defaults and never the runtime database.
services:
postgres:
image: postgres:16-alpine@sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777
env:
POSTGRES_USER: druks
POSTGRES_PASSWORD: druks
POSTGRES_DB: druks_test
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U druks"
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:8.2-alpine@sha256:223b183cbc49f5ff48728e1fc52ccf101f05072decad2bd9867281a3c9bf75fd
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0
with:
python-version: ${{ matrix.python-version }}
- run: uv sync --locked --dev
- run: uv run ruff check backend
# The proof app is a standalone distribution that depends on druks;
# it installs the way an author's would, so druks never depends on it.
- run: uv pip install -e backend/tests/druks-field_notes
- run: uv run pytest backend/
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
- run: npm install --prefix "$RUNNER_TEMP/chat-sdk" --no-audit --no-fund @agentclientprotocol/sdk@1.4.0
- run: node --test backend/tests/chat/bridge.test.mjs
env:
CHAT_TEST_SDK: ${{ runner.temp }}/chat-sdk/node_modules/@agentclientprotocol/sdk/dist/acp.js