-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
94 lines (83 loc) · 2.75 KB
/
Makefile
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
# ENVIRONMENT PROVIDED VARIABLES
# APPLICATION_DOMAIN_NAME
# AWS_ACCESS_KEY_ID
# AWS_DEFAULT_REGION
# AWS_SECRET_ACCESS_KEY
# CLOUDFRONT_SSL_CERT_ARN
# HOSTED_ZONE_ID
APPLICATION="react-sample"
ifeq ($(CIRCLE_BRANCH), master)
DEPLOY_ENV=stable
else
DEPLOY_ENV=unstable
endif
STACK_NAME="$(DEPLOY_ENV)-$(APPLICATION)-s3-host"
BUCKET_NAME="$(STACK_NAME)-bucket"
CDN_STACK_NAME="$(DEPLOY_ENV)-$(APPLICATION)-cdn"
TARGET_DOMAIN_NAME="$(APPLICATION)-$(DEPLOY_ENV).$(APPLICATION_DOMAIN_NAME)"
LOCAL_ALIAS="local-blue"
host:
echo "Deploying $(STACK_NAME) to $(DEPLOY_ENV)"
@aws cloudformation deploy \
--stack-name "$(STACK_NAME)" \
--capabilities CAPABILITY_NAMED_IAM \
--template-file cloudformation/00-s3-host.yml \
--parameter-overrides \
Environment=$(DEPLOY_ENV) \
Application="$(APPLICATION)" \
BucketName="$(BUCKET_NAME)" \
--no-fail-on-empty-changeset
host-local:
echo "Deploying the $(LOCAL_ALIAS)-$(APPLICATION) from a local machine"
echo "Make sure you have aws cli configured :P"
@aws cloudformation deploy \
--stack-name "$(LOCAL_ALIAS)-$(APPLICATION)-s3-host" \
--capabilities CAPABILITY_NAMED_IAM \
--template-file cloudformation/00-s3-host.yml \
--parameter-overrides \
Environment="$(LOCAL_ALIAS)" \
Application="$(APPLICATION)" \
BucketName="$(LOCAL_ALIAS)-$(APPLICATION)-bucket" \
--no-fail-on-empty-changeset
build-local:
npm run build
deploy-app:
echo "Deploying the application to S3 bucket $(BUCKET_NAME)"
@aws s3 sync build/ s3://$(BUCKET_NAME)
deploy-app-local:
echo "Deploying the application to S3 bucket $(LOCAL_ALIAS)-$(APPLICATION)-bucket"
echo "Make sure you have aws cli configured :P"
ls -la
@aws s3 sync build/ s3://$(LOCAL_ALIAS)-$(APPLICATION)-bucket
cdn:
echo "Deploying CDN on $(DEPLOY_ENV)"
@aws cloudformation deploy \
--stack-name "$(CDN_STACK_NAME)" \
--capabilities CAPABILITY_NAMED_IAM \
--template-file cloudformation/10-cloudfront.yml \
--parameter-overrides \
Environment="$(DEPLOY_ENV)" \
BucketName="$(BUCKET_NAME)" \
TargetDomainName="$(TARGET_DOMAIN_NAME)" \
SSLCertARN="$(CLOUDFRONT_SSL_CERT_ARN)" \
HostedZoneId="$(HOSTED_ZONE_ID)" \
--no-fail-on-empty-changeset
cdn-local:
echo "Deploying CDN from local machine"
echo "Make sure you have aws cli configured :P"
@aws cloudformation deploy \
--stack-name "$(LOCAL_ALIAS)-$(APPLICATION)-cdn" \
--capabilities CAPABILITY_NAMED_IAM \
--template-file cloudformation/10-cloudfront.yml \
--parameter-overrides \
Environment="$(LOCAL_ALIAS)" \
BucketName="$(LOCAL_ALIAS)-$(APPLICATION)-bucket" \
TargetDomainName="react-sample-$(LOCAL_ALIAS).appmod.aws.crlabs.cloud" \
SSLCertARN="$(CLOUDFRONT_SSL_CERT_ARN)" \
HostedZoneId='$(HOSTED_ZONE_ID)' \
--no-fail-on-empty-changeset
local:
make host-local
make build-local
make deploy-app-local
make cdn-local