-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
66 lines (50 loc) · 1.88 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
SHELL=/bin/sh
CWD := $(shell pwd)
STACK_NAME ?= sls-inquisitor-test
DEPLOYMENT_BUCKET ?= $(STACK_NAME)-deployment-$(AWS_PROFILE)-$(AWS_REGION)
ifneq (,$(PROVISIONED_INSTANCES))
OVERRIDES += ProvisionedInstances=$(PROVISIONED_INSTANCES)
endif
ifneq (,$(MEMORY_SIZE))
OVERRIDES += MemorySize=$(MEMORY_SIZE)
endif
ifneq (,$(OVERRIDES))
PARAMETER_OVERRIDES = --parameter-overrides $(OVERRIDES)
endif
ifneq (,$(AWS_PROFILE))
AWS_ARGS += --profile $(AWS_PROFILE)
endif
OUTPUT_FILE := output.yml
ifneq (,$(AWS_REGION))
AWS_ARGS += --region $(AWS_REGION)
OUTPUT_FILE := output-$(AWS_REGION).yml
ifneq (us-east-1,$(AWS_REGION))
BUCKET_LOCATION = --create-bucket-configuration LocationConstraint=$(AWS_REGION)
endif
endif
$(OUTPUT_FILE): template.yml sync-test-function/lambda.js web-site/vendor/aws-sdk.min.js web-site/index.html
aws s3api head-bucket --bucket $(DEPLOYMENT_BUCKET) $(AWS_ARGS) || \
aws s3api create-bucket $(AWS_ARGS) --bucket $(DEPLOYMENT_BUCKET) $(BUCKET_LOCATION)
aws cloudformation package --template-file $< --output-template-file $@ \
--s3-bucket $(DEPLOYMENT_BUCKET) $(AWS_ARGS)
deploy: $(OUTPUT_FILE)
chmod -R a+r web-site
chmod a+x web-site/vendor
aws cloudformation deploy --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND \
--template-file $< \
--stack-name $(STACK_NAME) $(AWS_ARGS) $(PARAMETER_OVERRIDES)
aws cloudformation describe-stacks \
--stack-name $(STACK_NAME) $(AWS_ARGS) \
--query Stacks[].Outputs[] --output text
logs:
sam logs --stack-name $(STACK_NAME) -n SyncTestFunction $(AWS_ARGS)
node_modules/aws-sdk/dist/aws-sdk.min.js:
npm install
web-site/vendor/aws-sdk.min.js: node_modules/aws-sdk/dist/aws-sdk.min.js
mkdir -p web-site/vendor
cp $< $@
clean:
rm -rf output*.yml web-config.yml web-site/vendor
undeploy:
aws cloudformation delete-stack --stack-name $(STACK_NAME) $(AWS_ARGS)
.PHONY: deploy deployment-bucket clean logs web undeploy