Skip to main content

local-e2e

Run a full local E2E test through the orchestrator-daemon pipeline. Starts infrastructure and services if needed, fires a webhook, tails logs until completion.

소스 정보

저장소
chrisleekr/github-app
최근 소스 활동
2026년 5월 10일 06:37
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
local-e2e
description
Run a full local E2E test through the orchestrator-daemon pipeline. Starts infrastructure and services if needed, fires a webhook, tails logs until completion.
## User Input ```text $ARGUMENTS ``` ## Required Environment Variables These must be set in `.env` or the shell environment before running: - `LOCAL_E2E_TEST_REPO`: `owner/repo` to test against (e.g. `myorg/my-test-repo`) - `LOCAL_E2E_TEST_ENTITY`: issue or PR number to target The skill MUST fail with a clear error message if either is unset. ## Arguments - `$ARGUMENTS` text becomes the trigger body (default: `@chrisleekr-bot run docker compose to execute the test suite in this repo. After running, save any gotchas or environment notes you discovered using save_repo_memory.`) - If `$ARGUMENTS` contains `--pr`, set `IS_PR=true` and strip the flag from the trigger body - If `$ARGUMENTS` contains `--dry-run`, set `DRY_RUN=true` and strip the flag from the trigger body - Default mode is live execution (`DRY_RUN=false`) ## Execution Steps ### Step 1: Validate environment 1. Read `LOCAL_E2E_TEST_REPO` and `LOCAL_E2E_TEST_ENTITY` from the environment (check `.env` file if not in shell env). 2. If either is missing, stop immediately and tell the user: ``` Missing required env vars for /local-e2e: LOCAL_E2E_TEST_REPO: set to owner/repo (e.g. myorg/my-test-repo) LOCAL_E2E_TEST_ENTITY: set to issue or PR number Add them to .env or export in your shell. ``` 3. Split `LOCAL_E2E_TEST_REPO` into `OWNER` and `REPO` on the `/` delimiter. ### Step 2: Start infrastructure if needed 1. Check if Docker containers for this project's Valkey and Postgres are running (`docker ps`). 2. If not running, execute `bun run dev:deps` and wait for containers to be healthy. ### Step 3: Start services if needed 1. Check if the server is listening: `curl -s http://localhost:3000/healthz` 2. If not, start `bun run dev` in background. Wait for `/healthz` to return `ok`. 3. Check daemon logs or server logs for daemon registration. 4. If no daemon is connected, start `bun run dev:daemon` in background. Wait for `Registered with orchestrator` in daemon output. ### Step 4: Fire the test Run the test using the existing script: ```bash DRY_RUN=${DRY_RUN:-false} \ OWNER="${OWNER}" \ REPO="${REPO}" \ ENTITY="${LOCAL_E2E_TEST_ENTITY}" \ IS_PR="${IS_PR:-false}" \ bash scripts/test-webhook.sh "${TRIGGER_BODY}" ``` ### Step 5: Monitor execution 1. Tail the daemon log output, watching for either: - `Claude Agent SDK execution completed`: success - `error` / `failed` / process exit: failure 2. Check every 15 seconds, with a maximum wait of 5 minutes. ### Step 6: Report result Print a summary: - **Status**: success or failure - **Duration**: from daemon logs (`durationMs`) - **Cost**: from daemon logs (`costUsd`) - **Turns**: from daemon logs (`numTurns`) - **Target**: `OWNER/REPO#ENTITY` - **Mode**: live or dry-run - If live and successful, suggest checking the GitHub issue/PR for the posted comment. ### Step 7: Verify memory persistence 1. Query `repo_memory` table: `psql $DATABASE_URL -c "SELECT id, repo_owner, repo_name, category, content, pinned FROM repo_memory ORDER BY updated_at DESC LIMIT 10;"` 2. Report whether new entries were created during this execution. 3. If empty, flag as **memory not working**: the daemon either didn't pass `REPO_MEMORY` env to the MCP server, the MCP server didn't write `.daemon-actions.json`, or the orchestrator didn't persist the actions.
GitHub에서 보기