-
Notifications
You must be signed in to change notification settings - Fork 32
93 lines (84 loc) · 2.75 KB
/
Copy pathnightly.yml
File metadata and controls
93 lines (84 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: Nightly
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
jobs:
unit:
name: Unit (Emacs ${{ matrix.emacs_version }})
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
emacs_version: ['29.4', '30.1', 'snapshot']
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-emacs
with:
version: ${{ matrix.emacs_version }}
- name: Install tree-sitter grammars
run: emacs --batch -Q -L . -l scripts/install-ts-grammars.el
- run: make check
integration-fake:
name: Integration fake
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
integration-real:
name: Integration real (pi@${{ matrix.pi_version }})
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
pi_version: ['pinned', 'latest']
services:
ollama:
image: ollama/ollama:latest
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: Get pi version
run: |
if [ "${{ matrix.pi_version }}" = "pinned" ]; then
echo "PI_VERSION=$(grep '^PI_VERSION' Makefile | head -1 | sed 's/.*?= *//')" >> $GITHUB_ENV
else
echo "PI_VERSION=${{ matrix.pi_version }}" >> $GITHUB_ENV
fi
- name: Setup Ollama model
run: |
for i in {1..30}; do curl -s http://localhost:11434/api/tags && break; sleep 1; done
curl -s http://localhost:11434/api/pull -d '{"name":"qwen3:1.7b"}' | tail -1
# Warm up: first inference loads weights into memory (10-30s cold start)
curl -s http://localhost:11434/api/generate \
-d '{"model":"qwen3:1.7b","prompt":"hi","stream":false,"think":false,"options":{"num_predict":1}}' > /dev/null
- name: Run real backend contract
run: make test-integration-ci-real PI_VERSION=${{ env.PI_VERSION }}
env:
PI_CODING_AGENT_DIR: ${{ runner.temp }}/pi-test
gui:
name: GUI
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install Emacs
run: sudo apt-get update && sudo apt-get install -y emacs xvfb
- name: Install tree-sitter grammars
run: emacs --batch -Q -L . -l scripts/install-ts-grammars.el
- name: Run fake-backed GUI tests
run: make test-gui-ci