add new installer for alpha
This commit is contained in:
93
installer/alpha/scripts/application.sh
Executable file
93
installer/alpha/scripts/application.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user