e2e-checkpoint-store: run all agents when the agent input is blank · Entire
e2e-checkpoint-store: run all agents when the agent input is blank
6550fda→main·
Soph·2w ago·1 file·+36 added/-67 removed
Mirror e2e.yml: the agent input is now optional with a blank first option, and a matrix-setup job fans out to all agents when it's left empty (single agent when selected). The two jobs collapse into one matrix job — copilot-cli runs in the matrix with copilot-requests: write granted to every leg (harmless for the others) and COPILOT_GITHUB_TOKEN passed through, so the separate copilot job is no longer needed. fail-fast: false so one agent's failure doesn't cancel the rest. The checkpoint_store input (git-branch / git-refs) is unchanged and applies to every agent in the run.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Sessions
cd1d43111232View transcript
Changes
1
.github/workflows
Me2e-checkpoint-store.yml+36/-67
3 unmodified lines
workflow_dispatch: inputs: agent: description: "Agent to run" required: true default: "vogon" description: "Agent to run (leave empty to run all agents)" required: false type: choice options: - "" - vogon - claude-code - opencode
jobs: matrix-setup: runs-on: ubuntu-latest outputs: agents: ${{ steps.set.outputs.agents }} steps: - id: set run: | input="${{ github.event.inputs.agent }}" if [ -n "$input" ]; then echo "agents=["$input"]" >> "$GITHUB_OUTPUT" else echo 'agents=["claude-code","opencode","gemini-cli","factoryai-droid","cursor-cli","copilot-cli","roger-roger","codex"]' >> "$GITHUB_OUTPUT" fi
e2e-checkpoint-store: if: inputs.agent != 'copilot-cli' needs: matrix-setup runs-on: ubuntu-latest timeout-minutes: 40 permissions: actions: read contents: read copilot-requests: write strategy: fail-fast: false matrix: agent: ${{ fromJson(needs.matrix-setup.outputs.agents) }}
steps: - name: Checkout repository run: go build -o /usr/local/bin/entire ./cmd/entire
name: Build vogon binary if: inputs.agent == 'vogon' if: matrix.agent == 'vogon' run: go build -o /usr/local/bin/vogon ./e2e/vogon
name: Install agent CLI if: inputs.agent != 'vogon' if: matrix.agent != 'vogon' run: | case "${{ inputs.agent }}" in case "${{ matrix.agent }}" in claude-code) curl -fsSL https://claude.ai/install.sh | bash ;; opencode) curl -fsSL https://opencode.ai/install | bash ;; gemini-cli) npm install -g @google/gemini-cli ;;
name: Verify roger-roger agent if: inputs.agent == 'roger-roger' if: matrix.agent == 'roger-roger' run: | set -euo pipefail echo "Verifying roger-roger binaries on PATH..." command -v entire-agent-roger-roger
name: Bootstrap agent if: inputs.agent != 'roger-roger' && inputs.agent != 'vogon' if: matrix.agent != 'roger-roger' && matrix.agent != 'vogon' env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }} FACTORY_API_KEY: ${{ secrets.FACTORY_API_KEY }} run: go run ./e2e/bootstrap ${{ inputs.agent }} COPILOT_GITHUB_TOKEN: ${{ github.token }} run: go run ./e2e/bootstrap ${{ matrix.agent }}
name: E2E Checkpoint Store env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} E2E_CODEX_MODEL: ${{ inputs.agent == 'codex' && 'gpt-5.1-codex-mini' || '' }} CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }} FACTORY_API_KEY: ${{ secrets.FACTORY_API_KEY }} E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts E2E_ENTIRE_BIN: /usr/local/bin/entire E2E_CHECKPOINT_STORE: ${{ inputs.checkpoint_store }} run: | mkdir -p "$E2E_ARTIFACT_DIR" mise run test:e2e --agent ${{ inputs.agent }}
name: Upload artifacts if: always() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: e2e-checkpoint-store-${{ inputs.agent }}-${{ inputs.checkpoint_store }} path: e2e-artifacts/ retention-days: 7
e2e-checkpoint-store-copilot: if: inputs.agent == 'copilot-cli' runs-on: ubuntu-latest timeout-minutes: 40 permissions: actions: read contents: read copilot-requests: write
steps: - name: Checkout repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: ref: ${{ github.event.pull_request.head.sha || github.sha }}
name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y gnome-keyring tmux echo 'somecredstorepass' | gnome-keyring-daemon --unlock
name: Setup mise uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4
name: Build entire CLI run: go build -o /usr/local/bin/entire ./cmd/entire
name: Install agent CLI run: | npm install -g @github/copilot echo "$HOME/.local/bin" >> $GITHUB_PATH
name: Bootstrap agent env: COPILOT_GITHUB_TOKEN: ${{ github.token }} run: go run ./e2e/bootstrap ${{ inputs.agent }}
name: E2E Checkpoint Store env: COPILOT_GITHUB_TOKEN: ${{ github.token }} E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts E2E_ENTIRE_BIN: /usr/local/bin/entire E2E_CHECKPOINT_STORE: ${{ inputs.checkpoint_store }} run: | mkdir -p "$E2E_ARTIFACT_DIR" mise run test:e2e --agent ${{ inputs.agent }} mise run test:e2e --agent ${{ matrix.agent }}