Repository navigation
49 lines (49 loc) · 2.57 KB
/
Copy pathlive-probes.yml
File metadata and controls
49 lines (49 loc) · 2.57 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
name: Live probes
# Runs the live Claude startup probes against the real Claude service. It is not a pull request check: it runs
# nightly on the default branch and when started by hand. See docs/implementation/ci.md.
on:
workflow_dispatch:
schedule:
- cron: '23 6 * * *'
permissions:
contents: read
concurrency:
group: live-probes
cancel-in-progress: false
jobs:
live-probes:
runs-on: ubuntu-latest
# The probes' own time limits total 44 min (6, 8, 8, 11 and 11). agent-container and agent-supervisor may each spend
# up to 10 min building the image before their probes; agent-question and agent-planning build inside their probes'
# own 11 min. The teardown hooks have Vitest limits that total 26 min: agent-container 2 after each test and 13 at
# the end (two sweeps of up to 5.5 min each, #189), agent-supervisor 7, agent-question 2 and agent-planning 2. That
# is 90 min, plus setup. These are only Vitest's limits: Vitest's hook timer cannot fire while a synchronous docker
# call blocks, and some calls in these hooks have no timeout of their own (the sweeps' calls have 30 s each). The
# 100 min job limit caps the run.
timeout-minutes: 100
steps:
# Fail at once when the secret is missing, so a missing secret never looks like a passing run.
- name: Require the Claude token
env:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
run: |
if [ -z "$CLAUDE_CODE_OAUTH_TOKEN" ]; then
echo "::error::The repository secret CLAUDE_CODE_OAUTH_TOKEN is not set. Add it to run the live probes."
exit 1
fi
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '26.7.0'
cache: npm
- run: npm ci --ignore-scripts
# The docker project runs these files one at a time, as in the Agent isolation workflow. The filter keeps only
# the tests whose titles end in "(live Claude)".
- name: Run the live Claude probes
env:
CODEBOOST_RUN_AUTH_PROBES: '1'
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
run: npx vitest run --project docker -t '\(live Claude\)$' --reporter=default --reporter=json --outputFile=live-probes.json test/agent-container.test.ts test/agent-question.test.ts test/agent-supervisor.test.ts test/agent-planning.test.ts
# Vitest exits 0 when it skips every probe, so check that each probe passed and nothing else ran.
- name: Check that every probe passed
run: node scripts/live-probes.ts check live-probes.json