Skip to content

Visit files and run shell commands from chat #684

Visit files and run shell commands from chat

Visit files and run shell commands from chat #684

name: Integration Tests
on:
push:
branches: [master, main]
pull_request:
jobs:
fake:
name: Fake contract
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-emacs
with:
version: '30.1'
- name: Run fake backend contract
run: make test-integration-fake
real:
name: Real contract
runs-on: ubuntu-latest
timeout-minutes: 20
services:
ollama:
image: ollama/ollama:0.11.11
ports:
- 11434:11434
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-emacs
with:
version: '30.1'
- uses: actions/setup-node@v4
with:
node-version: '24'
- name: Setup Ollama model
run: |
# Wait for Ollama to be ready
for i in {1..30}; do curl -s http://localhost:11434/api/tags && break; sleep 1; done
# Pull the model
echo "Pulling qwen3:1.7b..."
curl -s http://localhost:11434/api/pull -d '{"name":"qwen3:1.7b"}' | tail -1
# Verify
echo "Verifying model..."
curl -s http://localhost:11434/api/tags | grep -q 'qwen3:1.7b' || {
echo "::error::Model not found after pull"
curl -s http://localhost:11434/api/tags
exit 1
}
echo "Model qwen3:1.7b is ready"
# Warm up: first inference loads weights into memory (10-30s cold start)
echo "Warming up model..."
curl -s http://localhost:11434/api/generate \
-d '{"model":"qwen3:1.7b","prompt":"hi","stream":false,"think":false,"options":{"num_predict":1}}' > /dev/null
echo "Warmup complete"
- name: Run real backend contract
run: make test-integration-ci-real
env:
PI_CODING_AGENT_DIR: ${{ runner.temp }}/pi-test