Skip to content

Claude Code through Messages gateway #1

Claude Code through Messages gateway

Claude Code through Messages gateway #1

name: Claude Code E2E
run-name: Claude Code through Messages gateway
on:
pull_request:
merge_group:
push:
branches:
- main
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}
cancel-in-progress: true
jobs:
claude-code-e2e:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.12'
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24'
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: stable
- name: Cache cargo registry and build
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }}
restore-keys: |
cargo-${{ runner.os }}-
- name: Install pinned test dependencies
run: |
python -m pip install 'PyYAML==6.0.3'
npm install --global '@anthropic-ai/claude-code@2.1.218'
test "$(claude --version)" = '2.1.218 (Claude Code)'
- name: Test replay server
run: python -m unittest scripts/test_claude_code_replay_server.py -v
- name: Build agentic-server
run: cargo build -p agentic-server
- name: Run Claude Code through agentic-server
run: bash scripts/claude-code-smoke.sh