94 lines
2.6 KiB
Bash
Executable File
94 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Application build and installation
|
|
#
|
|
|
|
build_and_install_application() {
|
|
log_info "Building and installing Calypso application..."
|
|
|
|
# Build backend
|
|
build_backend
|
|
|
|
# Build frontend
|
|
build_frontend
|
|
|
|
# Install binaries and assets
|
|
install_application_files
|
|
|
|
log_info "✓ Application built and installed"
|
|
}
|
|
|
|
build_backend() {
|
|
log_info "Building backend..."
|
|
|
|
cd "$PROJECT_ROOT/backend"
|
|
|
|
# Ensure Go is in PATH
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
|
|
# Download dependencies
|
|
log_info "Downloading Go dependencies..."
|
|
go mod download
|
|
|
|
# Build binary
|
|
log_info "Building Go binary..."
|
|
go build -ldflags "-X main.version=$CALYPSO_VERSION -X main.buildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ) -X main.gitCommit=$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')" \
|
|
-o "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/bin/calypso-api" \
|
|
./cmd/calypso-api
|
|
|
|
if [[ -f "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/bin/calypso-api" ]]; then
|
|
chmod +x "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/bin/calypso-api"
|
|
log_info "✓ Backend built successfully"
|
|
else
|
|
log_error "Backend build failed"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
build_frontend() {
|
|
log_info "Building frontend..."
|
|
|
|
cd "$PROJECT_ROOT/frontend"
|
|
|
|
# Install dependencies
|
|
if [[ ! -d "node_modules" ]]; then
|
|
log_info "Installing frontend dependencies..."
|
|
npm install
|
|
fi
|
|
|
|
# Build frontend
|
|
log_info "Building frontend assets..."
|
|
npm run build
|
|
|
|
# Copy built assets
|
|
if [[ -d "dist" ]]; then
|
|
log_info "Copying frontend assets..."
|
|
cp -r dist/* "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/web/"
|
|
log_info "✓ Frontend built successfully"
|
|
else
|
|
log_error "Frontend build failed"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
install_application_files() {
|
|
log_info "Installing application files..."
|
|
|
|
# Copy migrations
|
|
if [[ -d "$PROJECT_ROOT/db/migrations" ]]; then
|
|
cp -r "$PROJECT_ROOT/db/migrations"/* "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/migrations/" 2>/dev/null || true
|
|
fi
|
|
|
|
# Copy scripts
|
|
if [[ -d "$PROJECT_ROOT/scripts" ]]; then
|
|
cp -r "$PROJECT_ROOT/scripts"/* "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/scripts/" 2>/dev/null || true
|
|
chmod +x "$INSTALL_PREFIX/releases/$CALYPSO_VERSION/scripts"/*.sh 2>/dev/null || true
|
|
fi
|
|
|
|
# Set ownership
|
|
chown -R calypso:calypso "$INSTALL_PREFIX" 2>/dev/null || chown -R root:root "$INSTALL_PREFIX"
|
|
|
|
log_info "✓ Application files installed"
|
|
}
|
|
|