A self-hosted orchestration system crafted for power users. composia.xyz
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#!/usr/bin/env sh
set -eu
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)cd "$ROOT_DIR"
COMPOSE_FILE="dev/docker-compose.e2e.yaml"CONTROLLER_HOST="${COMPOSIA_E2E_CONTROLLER_HOST:-127.0.0.1}"ACCESS_TOKEN="dev-admin-token"SUITE="${1:-all}"
case "$SUITE" in all | cli | controller | web) ;; *) echo "usage: $0 [all|cli|controller|web]" >&2 exit 2 ;;esac
cleanup() { status=$? if [ "$status" -ne 0 ]; then docker compose -f "$COMPOSE_FILE" logs --no-color controller-dev agent-dev || true fi docker compose -f "$COMPOSE_FILE" down -v exit "$status"}trap cleanup EXIT
if [ "$SUITE" = "all" ] || [ "$SUITE" = "web" ]; then deno install --frozen deno task --cwd web e2e:installfi
docker compose -f "$COMPOSE_FILE" up -d --build controller-dev agent-dev
CONTROLLER_PORT=$(docker compose -f "$COMPOSE_FILE" port controller-dev 7001 | awk -F: 'END { print $NF }')CONTROLLER_ADDR="http://$CONTROLLER_HOST:$CONTROLLER_PORT"
for attempt in $(seq 1 60); do if curl -fsS \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H 'Connect-Protocol-Version: 1' \ -H 'Content-Type: application/json' \ -H 'X-Composia-Source: local-e2e' \ --data '{}' \ "$CONTROLLER_ADDR/api/controller/composia.controller.v1.SystemService/GetSystemStatus" >/dev/null; then break fi
if [ "$attempt" = "60" ]; then exit 1 fi
sleep 2done
if [ "$SUITE" = "all" ] || [ "$SUITE" = "cli" ]; then COMPOSIA_E2E_CONTROLLER_ADDR="$CONTROLLER_ADDR" \ COMPOSIA_E2E_ACCESS_TOKEN="$ACCESS_TOKEN" \ go test -tags=e2e ./test/e2efi
if [ "$SUITE" = "all" ] || [ "$SUITE" = "controller" ]; then COMPOSIA_E2E_CONTROLLER_ADDR="$CONTROLLER_ADDR" \ COMPOSIA_E2E_ACCESS_TOKEN="$ACCESS_TOKEN" \ go test -tags=e2e ./test/controller_e2efi
if [ "$SUITE" = "all" ] || [ "$SUITE" = "web" ]; then WEB_CONTROLLER_ADDR="$CONTROLLER_ADDR" \ WEB_BROWSER_CONTROLLER_ADDR="$CONTROLLER_ADDR" \ WEB_CONTROLLER_ACCESS_TOKEN="$ACCESS_TOKEN" \ WEB_LOGIN_USERNAME="admin" \ WEB_LOGIN_PASSWORD_HASH='$argon2id$v=19$m=65536,t=3,p=4$/wh05hbH5ipiT42CK+GxVA$2unNmHbsRe5ZkFgIkHNekBGk6KH+79sZAPB9qmRrUlQ' \ WEB_SESSION_SECRET="e2e-session-secret" \ ORIGIN="http://127.0.0.1:4173" \ HOST="127.0.0.1" \ PORT="4173" \ deno task web:e2efi