|
49 | 49 | curl -LsSf https://astral.sh/uv/install.sh | sh |
50 | 50 | echo "$HOME/.local/bin" >> $GITHUB_PATH |
51 | 51 |
|
| 52 | + # Subprocess-CLI harnesses: install the relevant CLI only for the |
| 53 | + # claude-code / codex tutorials (no-op for every other tutorial). npm is |
| 54 | + # preinstalled on ubuntu runners. Versions mirror the golden agent's |
| 55 | + # sandbox image (teams/sgp/agents/golden_agent/sandbox/Dockerfile): claude-code |
| 56 | + # is pinned to the same CLAUDE_CODE_VERSION; codex is left unpinned there, |
| 57 | + # so it is left unpinned here too. Bump CLAUDE_CODE_VERSION in lockstep |
| 58 | + # with the sandbox Dockerfile. |
| 59 | + - name: Install harness CLI (claude-code / codex only) |
| 60 | + if: ${{ contains(matrix.tutorial, 'claude_code') || contains(matrix.tutorial, 'codex') }} |
| 61 | + env: |
| 62 | + CLAUDE_CODE_VERSION: "2.1.142" |
| 63 | + run: | |
| 64 | + if [[ "${{ matrix.tutorial }}" == *claude_code* ]]; then |
| 65 | + echo "📦 Installing Claude Code CLI (v${CLAUDE_CODE_VERSION})..." |
| 66 | + npm install -g "@anthropic-ai/claude-code@${CLAUDE_CODE_VERSION}" |
| 67 | + claude --version || true |
| 68 | + fi |
| 69 | + if [[ "${{ matrix.tutorial }}" == *codex* ]]; then |
| 70 | + echo "📦 Installing Codex CLI..." |
| 71 | + npm install -g @openai/codex |
| 72 | + codex --version || true |
| 73 | + fi |
| 74 | +
|
52 | 75 | - name: Pull latest AgentEx image |
53 | 76 | run: | |
54 | 77 | echo "🐳 Pulling latest Scale AgentEx Docker image..." |
@@ -136,6 +159,11 @@ jobs: |
136 | 159 | working-directory: ./examples/tutorials |
137 | 160 | env: |
138 | 161 | OPENAI_API_KEY: ${{ secrets.TUTORIAL_OPENAI_API_KEY }} |
| 162 | + ANTHROPIC_API_KEY: ${{ secrets.TUTORIAL_ANTHROPIC_API_KEY }} |
| 163 | + # Enable the gated live tests only for the matching subprocess-CLI |
| 164 | + # harness tutorial (the CLI is installed for it in the step above). |
| 165 | + CLAUDE_LIVE_TESTS: ${{ contains(matrix.tutorial, 'claude_code') && '1' || '' }} |
| 166 | + CODEX_LIVE_TESTS: ${{ contains(matrix.tutorial, 'codex') && '1' || '' }} |
139 | 167 | HEALTH_CHECK_PORT: 8080 # Use non-privileged port for temporal worker health checks |
140 | 168 | run: | |
141 | 169 | echo "Testing tutorial: ${{ matrix.tutorial }}" |
|
0 commit comments