diff --git a/deploy.sh b/deploy.sh index 6d781f2..0cecfad 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,7 +1,7 @@ #!/bin/bash # CA Grow Ops Manager - Automated Deployment Script -# Usage: ./deploy.sh [env] -# Environments: test (default), prod +# Usage: ./deploy.sh [env] [branch] +# Environments: test (default), prod, preview set -e # Exit on error @@ -40,7 +40,7 @@ case "$ENV" in ENV_DISPLAY="🟣 PREVIEW (Veridian-Preview on Nexus-Vector)" ;; *) - echo "Error: Unknown environment '$ENV'. Use 'test' or 'prod'." + echo "Error: Unknown environment '$ENV'. Use 'test', 'prod', or 'preview'." exit 1 ;; esac @@ -50,6 +50,7 @@ echo "==============================================" echo "Target: $ENV_DISPLAY" echo "Host: $USER@$HOST" echo "Path: $DEPLOY_PATH" +echo "Branch: $BRANCH" echo "==============================================" echo "" @@ -96,7 +97,7 @@ echo -e "${BLUE}Step 4: Syncing repository on $HOST...${NC}" ssh "$USER@$HOST" " if [ ! -d $DEPLOY_PATH/.git ]; then echo ' Cloning repository...' - git clone $REPO_URL $DEPLOY_PATH + git clone -b $BRANCH $REPO_URL $DEPLOY_PATH else echo ' Pulling latest changes...' cd $DEPLOY_PATH && git fetch origin && git checkout $BRANCH && git pull origin $BRANCH @@ -117,14 +118,14 @@ if [ "$HAS_ENV" = "no" ]; then ssh "$USER@$HOST" "cat > $ENV_FILE << EOF # Database -DB_PASSWORD=${DB_PASSWORD} - -# JWT -JWT_SECRET=${JWT_SECRET} - -# Environment -NODE_ENV=production -PORT=${PORT} +109: DB_PASSWORD=${DB_PASSWORD} +110: +111: # JWT +112: JWT_SECRET=${JWT_SECRET} +113: +114: # Environment +115: NODE_ENV=production +116: PORT=${PORT} EOF" echo -e "${GREEN}✓ Environment file created${NC}" echo -e "${YELLOW}IMPORTANT: New secrets generated on $HOST.${NC}" @@ -137,17 +138,16 @@ echo "" echo -e "${BLUE}Step 6: Deploying services...${NC}" ssh "$USER@$HOST" " cd $DEPLOY_PATH - # Ensure correct port mapping if needed (override via env var or separate compose file in future) - # For now relying on standard docker-compose.yml echo ' Building containers...' - docker compose build + # Use --env-file to ensure variables are loaded + docker compose --env-file docker-compose.env build echo ' Starting services...' - if [ "$ENV" = "preview" ]; then - docker compose -f docker-compose.yml -f docker-compose.preview.yml up -d --build + if [ \"$ENV\" = \"preview\" ]; then + docker compose --env-file docker-compose.env -f docker-compose.yml -f docker-compose.preview.yml up -d --build else - docker compose up -d --build + docker compose --env-file docker-compose.env up -d --build fi " echo -e "${GREEN}✓ Services deployed${NC}"