forked from nvanthanh/modern-apps
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
·99 lines (82 loc) · 3.06 KB
/
Copy pathdeploy.sh
File metadata and controls
executable file
·99 lines (82 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
set -euo pipefail
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
function _logger() {
echo -e "$(date) ${YELLOW}[*] $@ ${NC}"
}
source ./.env.sh
# ./install-prerequisites.sh
echo
echo "#########################################################"
_logger "[+] Verify the prerequisites environment"
echo "#########################################################"
echo
## DEBUG
echo "[x] Verify AWS CLI": $(aws --version)
echo "[x] Verify jq": $(jq --version)
echo "[x] Verify Docker": $(docker version)
echo "[x] Verify CDK": $(cdk --version)
echo "[x] Verify Node.js": $(node --version)
echo "[x] Verify Python": $(python -V)
echo "[x] Verify Maven": $(cdk --version)
# https://aws.amazon.com/visualstudio/
echo $AWS_ACCOUNT + $AWS_REGION + $AWS_S3_BUCKET + $AWS_CDK_STACK
currentPrincipalArn=$(aws sts get-caller-identity --query Arn --output text)
## Just in case, you are using an IAM role, we will switch the identity from your STS arn to the underlying role ARN.
currentPrincipalArn=$(sed 's/\(sts\)\(.*\)\(assumed-role\)\(.*\)\(\/.*\)/iam\2role\4/' <<< $currentPrincipalArn)
echo $currentPrincipalArn
## Install node_modules typescript
npm install
cdk bootstrap aws://${AWS_ACCOUNT}/${AWS_REGION} \
--bootstrap-bucket-name ${AWS_S3_BUCKET} \
--termination-protection \
--tags type=cdk-bootstrap
## export CDK_NEW_BOOTSTRAP=1
## cdk bootstrap aws://${AWS_ACCOUNT}/${AWS_REGION} --show-template -v
started_time=$(date '+%d/%m/%Y %H:%M:%S')
echo
echo "#########################################################"
_logger "[+] [START] Deploy CDK-TypeScript at ${started_time}"
echo "#########################################################"
echo
# 1. Deloy DockerHub & ECR
echo
echo "#########################################################"
_logger "[+] 1. [AWS Infrastructure] VPC, EC2/Cloud9, ECS, EKS"
echo "#########################################################"
echo
## DEBUG
## cd ecs-fargate
echo rm -rf cdk.out/*.* cdk.context.json
echo
echo "#########################################################"
_logger "[+] 2.1. [ECR]Deploy Frontend - React"
echo "#########################################################"
echo
cd docker
echo sh ./deploy-docker-ecs-frontend.sh
echo
echo "#########################################################"
_logger "[+] 2.2. [ECR]Deploy Backend"
echo "#########################################################"
echo
echo sh ./deploy-docker-ecs-backend.sh
echo
echo "#########################################################"
_logger "[+] 2.3. [ECR]Deploy Backend - NodeJS"
echo "#########################################################"
echo
echo sh ./deploy-docker-ecs-backend-nodejs.sh
npm run build
## cdk diff $AWS_CDK_STACK
## cdk synth $AWS_CDK_STACK
## cdk deploy $AWS_CDK_STACK --require-approval never
echo cdk deploy --all --require-approval never
ended_time=$(date '+%d/%m/%Y %H:%M:%S')
echo
echo "#########################################################"
echo -e "${RED} [END] CDK-TypeScript at ${ended_time} - ${started_time} ${NC}"
echo "#########################################################"
echo