version: '3.8'

# E2E 测试环境：Gitea + gitea-assistant
# 用法:
#   docker compose -f docker-compose.e2e.yml up -d
#   # 等待服务启动后运行 seed 脚本:
#   ./e2e/seed.sh
#   # 运行 E2E 测试:
#   ./e2e/test.sh
#   # 清理:
#   docker compose -f docker-compose.e2e.yml down -v

services:
  gitea:
    image: gitea/gitea:1.22
    container_name: e2e-gitea
    environment:
      - GITEA__database__DB_TYPE=sqlite3
      - GITEA__server__ROOT_URL=http://gitea:3000
      - GITEA__server__HTTP_PORT=3000
      - GITEA__security__INSTALL_LOCK=true
      - GITEA__service__DISABLE_REGISTRATION=false
      - GITEA__service__REQUIRE_SIGNIN_VIEW=false
      - GITEA__webhook__ALLOWED_HOST_LIST=*
      - GITEA__webhook__SKIP_TLS_VERIFY=true
    ports:
      - "3333:3000"
    volumes:
      - gitea-data:/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/v1/version"]
      interval: 5s
      timeout: 3s
      retries: 20
      start_period: 10s

  assistant:
    build:
      context: .
      dockerfile: e2e/Dockerfile.e2e
    container_name: e2e-assistant
    depends_on:
      gitea:
        condition: service_healthy
    environment:
      - NODE_ENV=production
      - GITEA_API_URL=http://gitea:3000/api/v1
      - GITEA_ACCESS_TOKEN=${E2E_GITEA_TOKEN:-placeholder}
      - PORT=5174
    ports:
      - "3334:5174"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5174/api/health"]
      interval: 5s
      timeout: 3s
      retries: 10
      start_period: 5s

volumes:
  gitea-data:
