mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-09 22:57:24 +00:00
47 lines
1.5 KiB
Bash
47 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
|
REGION=${AWS_DEFAULT_REGION:-me-central-1}
|
|
REPO_NAME=syncrow-backend
|
|
IMAGE_TAG=latest
|
|
CLUSTER_NAME=syncrow-backend-cluster
|
|
STACK_NAME=SyncrowBackendStack
|
|
CERTIFICATE_ARN="arn:aws:acm:$REGION:$ACCOUNT_ID:certificate/bea1e2ae-84a1-414e-8dbf-4599397e7ed0"
|
|
|
|
echo "🔐 Logging into ECR..."
|
|
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin "$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
|
|
|
|
echo "🐳 Building Docker image..."
|
|
docker build --platform=linux/amd64 -t $REPO_NAME .
|
|
|
|
echo "🏷️ Tagging image..."
|
|
docker tag $REPO_NAME:$IMAGE_TAG "$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$REPO_NAME:$IMAGE_TAG"
|
|
|
|
echo "📤 Pushing image to ECR..."
|
|
docker push "$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$REPO_NAME:$IMAGE_TAG"
|
|
|
|
echo "🔍 Checking if ECS service exists..."
|
|
SERVICE_ARN=$(aws ecs list-services \
|
|
--cluster $CLUSTER_NAME \
|
|
--query 'serviceArns[0]' \
|
|
--output text \
|
|
--region $REGION 2>/dev/null || echo "")
|
|
|
|
echo "📦 Deploying CDK Stack..."
|
|
npx cdk deploy $STACK_NAME \
|
|
--context certificateArn=$CERTIFICATE_ARN \
|
|
--require-approval never
|
|
|
|
if [[ "$SERVICE_ARN" != "" && "$SERVICE_ARN" != "None" ]]; then
|
|
SERVICE_NAME=$(basename "$SERVICE_ARN")
|
|
echo "🚀 Redeploying ECS Service: $SERVICE_NAME"
|
|
aws ecs update-service \
|
|
--cluster $CLUSTER_NAME \
|
|
--service $SERVICE_NAME \
|
|
--force-new-deployment \
|
|
--region $REGION
|
|
fi
|
|
|
|
echo "✅ All done."
|