chore: import upstream snapshot with attribution
Check engine pin consistency / Dockerfile / CI pin consistency (push) Successful in 8s
Sirius CI/CD Pipeline / Detect Changes (push) Successful in 23s
Validate Docker Configuration / Validate Docker Compose Configuration (push) Successful in 47s
Sirius CI/CD Pipeline / Build API (${{ matrix.platform }}) (push) Has been cancelled
Sirius CI/CD Pipeline / Build UI (${{ matrix.platform }}) (push) Has been cancelled
Sirius CI/CD Pipeline / Merge Engine Manifest (push) Has been cancelled
Sirius CI/CD Pipeline / Merge API Manifest (push) Has been cancelled
Sirius CI/CD Pipeline / Merge UI Manifest (push) Has been cancelled
Sirius CI/CD Pipeline / Build Engine (${{ matrix.platform }}) (push) Has been cancelled
Sirius CI/CD Pipeline / Build Infra (${{ matrix.service }}, ${{ matrix.platform }}) (push) Has been cancelled
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-postgres) (push) Has been cancelled
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-rabbitmq) (push) Has been cancelled
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-valkey) (push) Has been cancelled
Sirius CI/CD Pipeline / Integration Test (push) Has been cancelled
Sirius CI/CD Pipeline / Public Stack Contract (push) Has been cancelled
Sirius CI/CD Pipeline / Dispatch Demo Deployment (sirius-demo branch) (push) Has been cancelled
Sirius CI/CD Pipeline / Dispatch Demo Canary (main branch) (push) Has been cancelled
Sirius CI/CD Pipeline / Guard Registry Namespace (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:32:25 +08:00
commit 161ef94b4f
708 changed files with 189571 additions and 0 deletions
+221
View File
@@ -0,0 +1,221 @@
#!/bin/bash
# Sirius Development Setup Helper
# This script helps set up local development environment
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
LOCAL_COMPOSE="$PROJECT_ROOT/docker-compose.local.yaml"
EXAMPLE_COMPOSE="$PROJECT_ROOT/docker-compose.local.example.yaml"
ENV_FILE="$PROJECT_ROOT/.env"
INSTALLER_COMPOSE_FILE="$PROJECT_ROOT/docker-compose.installer.yaml"
echo "🚀 Sirius Development Setup"
echo "================================"
# Function to show usage
show_usage() {
echo "Usage: $0 [command]"
echo ""
echo "Commands:"
echo " init Create local docker-compose.local.yaml from template"
echo " start Start development environment"
echo " start-extended Start with local repository mounts (requires setup)"
echo " stop Stop development environment"
echo " clean Clean development environment and volumes"
echo " status Show container status"
echo " logs [service] Show logs for all services or specific service"
echo " shell <service> Open shell in service container"
echo ""
echo "Examples:"
echo " $0 init # Set up local development files"
echo " $0 start # Standard development mode"
echo " $0 start-extended # Extended development with local repos"
echo " $0 logs sirius-engine # Show engine logs"
echo " $0 shell sirius-ui # Open shell in UI container"
}
# Function to check if local compose file exists
check_local_compose() {
if [ ! -f "$LOCAL_COMPOSE" ]; then
echo "⚠️ Local compose file not found: $LOCAL_COMPOSE"
echo "💡 Run '$0 init' to create it from template"
return 1
fi
return 0
}
# Function to initialize local development setup
init_dev() {
echo "📋 Setting up local development environment..."
if [ -f "$LOCAL_COMPOSE" ]; then
echo "⚠️ $LOCAL_COMPOSE already exists"
read -p "Do you want to overwrite it? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "️ Keeping existing file"
return 0
fi
fi
if [ ! -f "$EXAMPLE_COMPOSE" ]; then
echo "❌ Template file not found: $EXAMPLE_COMPOSE"
return 1
fi
cp "$EXAMPLE_COMPOSE" "$LOCAL_COMPOSE"
echo "✅ Created $LOCAL_COMPOSE"
echo ""
echo "📝 Next steps:"
echo "1. Edit $LOCAL_COMPOSE to uncomment the repositories you want to develop"
echo "2. Make sure you have the corresponding repositories in ../minor-projects/"
echo "3. Run '$0 start-extended' to start with local repository mounts"
echo ""
echo "🔧 For standard development (no local repos needed): '$0 start'"
}
# Ensure required env exists before startup.
ensure_env_ready() {
if [ -f "$ENV_FILE" ]; then
return 0
fi
echo "⚠️ Missing $ENV_FILE"
if [ "${SIRIUS_AUTO_SETUP:-0}" = "1" ]; then
echo "🔧 Running installer container in non-interactive mode..."
docker compose -f "$INSTALLER_COMPOSE_FILE" run --rm sirius-installer --non-interactive --no-print-secrets
return 0
fi
echo "Run installer first:"
echo " docker compose -f docker-compose.installer.yaml run --rm sirius-installer"
echo "Or rerun with SIRIUS_AUTO_SETUP=1 for automated setup."
return 1
}
# Function to start development environment
start_dev() {
local mode=$1
cd "$PROJECT_ROOT"
ensure_env_ready || return 1
if [ "$mode" = "extended" ]; then
echo "🔧 Starting extended development environment..."
if ! check_local_compose; then
return 1
fi
echo "📁 Using local repository mounts from docker-compose.local.yaml"
docker compose -f docker-compose.yaml -f docker-compose.override.yaml -f docker-compose.local.yaml up -d
else
echo "🔧 Starting standard development environment..."
docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d
fi
echo ""
echo "✅ Development environment started!"
echo "🌐 UI: http://localhost:3000"
echo "🔧 API: http://localhost:9001"
echo "📊 RabbitMQ Management: http://localhost:15672 (guest/guest)"
if command -v docker &> /dev/null; then
echo ""
echo "📋 Container Status:"
docker compose ps
fi
}
# Function to stop development environment
stop_dev() {
echo "🛑 Stopping development environment..."
cd "$PROJECT_ROOT"
docker compose down
echo "✅ Development environment stopped"
}
# Function to clean development environment
clean_dev() {
echo "🧹 Cleaning development environment..."
cd "$PROJECT_ROOT"
read -p "This will remove all containers and volumes. Continue? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "️ Cleanup cancelled"
return 0
fi
docker compose down -v --remove-orphans
docker system prune -f
echo "✅ Development environment cleaned"
}
# Function to show container status
show_status() {
echo "📋 Container Status:"
cd "$PROJECT_ROOT"
docker compose ps
}
# Function to show logs
show_logs() {
local service=$1
cd "$PROJECT_ROOT"
if [ -n "$service" ]; then
echo "📜 Showing logs for $service..."
docker compose logs -f "$service"
else
echo "📜 Showing logs for all services..."
docker compose logs -f
fi
}
# Function to open shell in container
open_shell() {
local service=$1
if [ -z "$service" ]; then
echo "❌ Service name required"
echo "Available services: sirius-ui, sirius-api, sirius-engine, sirius-postgres, sirius-rabbitmq, sirius-valkey"
return 1
fi
cd "$PROJECT_ROOT"
echo "🐚 Opening shell in $service..."
docker compose exec "$service" /bin/bash || docker compose exec "$service" /bin/sh
}
# Main command handling
case "$1" in
"init")
init_dev
;;
"start")
start_dev
;;
"start-extended")
start_dev extended
;;
"stop")
stop_dev
;;
"clean")
clean_dev
;;
"status")
show_status
;;
"logs")
show_logs "$2"
;;
"shell")
open_shell "$2"
;;
*)
show_usage
;;
esac