136 lines
4.0 KiB
Bash
Executable File
136 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Build Test Script
|
|
# Tests the build process for dashboard-fresh, rag-server, and account services
|
|
|
|
set -e
|
|
|
|
echo "=================================="
|
|
echo "Build Test - Starting"
|
|
echo "=================================="
|
|
echo ""
|
|
|
|
# Configuration
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
LOG_FILE="tests/output/build_test_${TIMESTAMP}.log"
|
|
RESULTS_FILE="tests/output/build_results_${TIMESTAMP}.json"
|
|
|
|
# Create output directory
|
|
mkdir -p tests/output
|
|
|
|
# Initialize results
|
|
echo "{" > "$RESULTS_FILE"
|
|
echo ' "timestamp": "'$TIMESTAMP'",' >> "$RESULTS_FILE"
|
|
echo ' "tests": [' >> "$RESULTS_FILE"
|
|
|
|
# Test counters
|
|
TOTAL_TESTS=0
|
|
PASSED_TESTS=0
|
|
FAILED_TESTS=0
|
|
|
|
# Function to test build for a service
|
|
test_build() {
|
|
local service_name=$1
|
|
local service_path=$2
|
|
local build_command=$3
|
|
|
|
echo "----------------------------------------"
|
|
echo "Testing: $service_name"
|
|
echo "----------------------------------------"
|
|
echo ""
|
|
|
|
TOTAL_TESTS=$((TOTAL_TESTS + 1))
|
|
|
|
if [ -d "$service_path" ]; then
|
|
echo "Service directory exists: $service_path"
|
|
|
|
# Try to build the service
|
|
echo "Running build command: $build_command"
|
|
if eval "cd $service_path && $build_command" >> "$LOG_FILE" 2>&1; then
|
|
echo "✓ Build succeeded for $service_name"
|
|
PASSED_TESTS=$((PASSED_TESTS + 1))
|
|
|
|
# Add to results
|
|
if [ $TOTAL_TESTS -gt 1 ]; then
|
|
echo "," >> "$RESULTS_FILE"
|
|
fi
|
|
echo ' {' >> "$RESULTS_FILE"
|
|
echo ' "service": "'$service_name'",' >> "$RESULTS_FILE"
|
|
echo ' "status": "PASSED",' >> "$RESULTS_FILE"
|
|
echo ' "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"' >> "$RESULTS_FILE"
|
|
echo -n ' }' >> "$RESULTS_FILE"
|
|
else
|
|
echo "✗ Build failed for $service_name"
|
|
FAILED_TESTS=$((FAILED_TESTS + 1))
|
|
|
|
# Add to results
|
|
if [ $TOTAL_TESTS -gt 1 ]; then
|
|
echo "," >> "$RESULTS_FILE"
|
|
fi
|
|
echo ' {' >> "$RESULTS_FILE"
|
|
echo ' "service": "'$service_name'",' >> "$RESULTS_FILE"
|
|
echo ' "status": "FAILED",' >> "$RESULTS_FILE"
|
|
echo ' "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"' >> "$RESULTS_FILE"
|
|
echo -n ' }' >> "$RESULTS_FILE"
|
|
fi
|
|
else
|
|
echo "✗ Service directory not found: $service_path"
|
|
FAILED_TESTS=$((FAILED_TESTS + 1))
|
|
|
|
# Add to results
|
|
if [ $TOTAL_TESTS -gt 1 ]; then
|
|
echo "," >> "$RESULTS_FILE"
|
|
fi
|
|
echo ' {' >> "$RESULTS_FILE"
|
|
echo ' "service": "'$service_name'",' >> "$RESULTS_FILE"
|
|
echo ' "status": "NOT_FOUND",' >> "$RESULTS_FILE"
|
|
echo ' "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"' >> "$RESULTS_FILE"
|
|
echo -n ' }' >> "$RESULTS_FILE"
|
|
fi
|
|
|
|
echo ""
|
|
}
|
|
|
|
# Test builds for each service
|
|
echo "Starting build tests..."
|
|
echo ""
|
|
|
|
# Account service (Go)
|
|
test_build "account" "account" "go build -o xcontrol-account ./"
|
|
|
|
# RAG server (Go)
|
|
test_build "rag-server" "rag-server" "go build -o xcontrol-rag-server ./"
|
|
|
|
# Dashboard fresh (TypeScript/Node.js)
|
|
test_build "dashboard-fresh" "dashboard-fresh" "npm run build 2>/dev/null || echo 'Build script not found'"
|
|
|
|
# Close results JSON
|
|
echo "" >> "$RESULTS_FILE"
|
|
echo ' ],' >> "$RESULTS_FILE"
|
|
echo ' "summary": {' >> "$RESULTS_FILE"
|
|
echo ' "total": '$TOTAL_TESTS',' >> "$RESULTS_FILE"
|
|
echo ' "passed": '$PASSED_TESTS',' >> "$RESULTS_FILE"
|
|
echo ' "failed": '$FAILED_TESTS'' >> "$RESULTS_FILE"
|
|
echo ' }' >> "$RESULTS_FILE"
|
|
echo "}" >> "$RESULTS_FILE"
|
|
|
|
# Summary
|
|
echo "=================================="
|
|
echo "Build Test - Summary"
|
|
echo "=================================="
|
|
echo "Total tests: $TOTAL_TESTS"
|
|
echo "Passed: $PASSED_TESTS"
|
|
echo "Failed: $FAILED_TESTS"
|
|
echo ""
|
|
echo "Detailed log: $LOG_FILE"
|
|
echo "Results JSON: $RESULTS_FILE"
|
|
echo ""
|
|
|
|
if [ $FAILED_TESTS -eq 0 ]; then
|
|
echo "✓ All build tests passed!"
|
|
exit 0
|
|
else
|
|
echo "✗ Some build tests failed"
|
|
exit 1
|
|
fi
|