Skip to content
This repository was archived by the owner on Mar 27, 2023. It is now read-only.

Commit f439d0c

Browse files
committed
Merge branch '33-s3-deployment-for-static-site' into 'develop'
Resolve "Add a conditional BucketDeployment for static site S3 bucket" Closes #33 See merge request verbose-equals-true/django-postgres-vue-gitlab-ecs!77
2 parents 85bb60e + 10ef506 commit f439d0c

File tree

4 files changed

+25
-47
lines changed

4 files changed

+25
-47
lines changed

awscdk/awscdk/cdk_app_root.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from aws_cdk import core, aws_ecs as ecs
1+
import os
2+
3+
from aws_cdk import core, aws_ecs as ecs, aws_s3_deployment as s3_deployment
24

35
from cert import SiteCertificate
46
from hosted_zone import HostedZone
@@ -67,10 +69,17 @@ def __init__(
6769
full_app_name=full_app_name,
6870
)
6971

70-
# TODO: remove this
71-
# self.ecr_repo = ElasticContainerRepo(
72-
# self, "ElasticContainerRepo", full_app_name=full_app_name
73-
# )
72+
# deploy frontend site if there are assets in the quasar pwa dist folder
73+
# if there are no changes, the deployment will not happen becase
74+
# ../quasar/dist/pwa will not exist
75+
if os.path.isdir("../quasar/dist/pwa"):
76+
s3_deployment.BucketDeployment(
77+
self,
78+
"BucketDeployment",
79+
destination_bucket=self.static_site_bucket,
80+
sources=[s3_deployment.Source.asset("../quasar/dist/pwa")],
81+
distribution=self.cloudfront.distribution,
82+
)
7483

7584
self.ecs = Ecs(self, "Ecs", vpc=self.vpc, full_app_name=full_app_name)
7685

awscdk/awscdk/static_site_bucket.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,3 @@ def __init__(
3636
)
3737

3838
self.static_site_bucket.add_to_resource_policy(self.policy_statement)
39-
40-
if os.path.isdir("../quasar/dist/pwa"):
41-
print("quasar assets dir")
42-
# TODO: S3 Deployment if there are files in the pwa folder

awscdk/stack.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,8 @@ Resources:
708708
CacheNodeType: cache.t2.micro
709709
Engine: redis
710710
NumCacheNodes: 1
711+
CacheSubnetGroupName:
712+
Ref: ElastiCacheRedisCfnSubnetGroup403949FE
711713
Tags:
712714
- Key: StackName
713715
Value: dev-mysite-com
@@ -820,7 +822,7 @@ Resources:
820822
- - Ref: AWS::AccountId
821823
- .dkr.ecr.us-east-1.
822824
- Ref: AWS::URLSuffix
823-
- /aws-cdk/assets:e9bd2944752269283bca892a634e5fb9e54f6646415dbc7fc0118bca834b3e04
825+
- /aws-cdk/assets:315e2df1a1c69ccadd512a824f2ac30372ca3ad34f88048d06058db1be8f2bf9
824826
LogConfiguration:
825827
LogDriver: awslogs
826828
Options:
@@ -1026,7 +1028,7 @@ Resources:
10261028
- - Ref: AWS::AccountId
10271029
- .dkr.ecr.us-east-1.
10281030
- Ref: AWS::URLSuffix
1029-
- /aws-cdk/assets:e9bd2944752269283bca892a634e5fb9e54f6646415dbc7fc0118bca834b3e04
1031+
- /aws-cdk/assets:315e2df1a1c69ccadd512a824f2ac30372ca3ad34f88048d06058db1be8f2bf9
10301032
LogConfiguration:
10311033
LogDriver: awslogs
10321034
Options:
@@ -1213,7 +1215,7 @@ Resources:
12131215
- - Ref: AWS::AccountId
12141216
- .dkr.ecr.us-east-1.
12151217
- Ref: AWS::URLSuffix
1216-
- /aws-cdk/assets:e9bd2944752269283bca892a634e5fb9e54f6646415dbc7fc0118bca834b3e04
1218+
- /aws-cdk/assets:315e2df1a1c69ccadd512a824f2ac30372ca3ad34f88048d06058db1be8f2bf9
12171219
LogConfiguration:
12181220
LogDriver: awslogs
12191221
Options:
@@ -1399,7 +1401,7 @@ Resources:
13991401
- - Ref: AWS::AccountId
14001402
- .dkr.ecr.us-east-1.
14011403
- Ref: AWS::URLSuffix
1402-
- /aws-cdk/assets:e9bd2944752269283bca892a634e5fb9e54f6646415dbc7fc0118bca834b3e04
1404+
- /aws-cdk/assets:315e2df1a1c69ccadd512a824f2ac30372ca3ad34f88048d06058db1be8f2bf9
14031405
LogConfiguration:
14041406
LogDriver: awslogs
14051407
Options:
@@ -1486,5 +1488,5 @@ Resources:
14861488
CDKMetadata:
14871489
Type: AWS::CDK::Metadata
14881490
Properties:
1489-
Modules: aws-cdk=1.38.0,@aws-cdk/assets=1.38.0,@aws-cdk/aws-apigateway=1.38.0,@aws-cdk/aws-applicationautoscaling=1.38.0,@aws-cdk/aws-autoscaling=1.38.0,@aws-cdk/aws-autoscaling-common=1.38.0,@aws-cdk/aws-autoscaling-hooktargets=1.38.0,@aws-cdk/aws-batch=1.38.0,@aws-cdk/aws-certificatemanager=1.38.0,@aws-cdk/aws-cloudformation=1.38.0,@aws-cdk/aws-cloudfront=1.38.0,@aws-cdk/aws-cloudwatch=1.38.0,@aws-cdk/aws-codebuild=1.38.0,@aws-cdk/aws-codecommit=1.38.0,@aws-cdk/aws-codepipeline=1.38.0,@aws-cdk/aws-cognito=1.38.0,@aws-cdk/aws-ec2=1.38.0,@aws-cdk/aws-ecr=1.38.0,@aws-cdk/aws-ecr-assets=1.38.0,@aws-cdk/aws-ecs=1.38.0,@aws-cdk/aws-ecs-patterns=1.38.0,@aws-cdk/aws-elasticache=1.38.0,@aws-cdk/aws-elasticloadbalancing=1.38.0,@aws-cdk/aws-elasticloadbalancingv2=1.38.0,@aws-cdk/aws-events=1.38.0,@aws-cdk/aws-events-targets=1.38.0,@aws-cdk/aws-iam=1.38.0,@aws-cdk/aws-kms=1.38.0,@aws-cdk/aws-lambda=1.38.0,@aws-cdk/aws-logs=1.38.0,@aws-cdk/aws-rds=1.38.0,@aws-cdk/aws-route53=1.38.0,@aws-cdk/aws-route53-targets=1.38.0,@aws-cdk/aws-s3=1.38.0,@aws-cdk/aws-s3-assets=1.38.0,@aws-cdk/aws-sam=1.38.0,@aws-cdk/aws-secretsmanager=1.38.0,@aws-cdk/aws-servicediscovery=1.38.0,@aws-cdk/aws-sns=1.38.0,@aws-cdk/aws-sns-subscriptions=1.38.0,@aws-cdk/aws-sqs=1.38.0,@aws-cdk/aws-ssm=1.38.0,@aws-cdk/aws-stepfunctions=1.38.0,@aws-cdk/cloud-assembly-schema=1.38.0,@aws-cdk/core=1.38.0,@aws-cdk/custom-resources=1.38.0,@aws-cdk/cx-api=1.38.0,@aws-cdk/region-info=1.38.0,jsii-runtime=Python/3.6.8
1491+
Modules: aws-cdk=1.38.0,@aws-cdk/assets=1.38.0,@aws-cdk/aws-apigateway=1.38.0,@aws-cdk/aws-applicationautoscaling=1.38.0,@aws-cdk/aws-autoscaling=1.38.0,@aws-cdk/aws-autoscaling-common=1.38.0,@aws-cdk/aws-autoscaling-hooktargets=1.38.0,@aws-cdk/aws-batch=1.38.0,@aws-cdk/aws-certificatemanager=1.38.0,@aws-cdk/aws-cloudformation=1.38.0,@aws-cdk/aws-cloudfront=1.38.0,@aws-cdk/aws-cloudwatch=1.38.0,@aws-cdk/aws-codebuild=1.38.0,@aws-cdk/aws-codecommit=1.38.0,@aws-cdk/aws-codepipeline=1.38.0,@aws-cdk/aws-cognito=1.38.0,@aws-cdk/aws-ec2=1.38.0,@aws-cdk/aws-ecr=1.38.0,@aws-cdk/aws-ecr-assets=1.38.0,@aws-cdk/aws-ecs=1.38.0,@aws-cdk/aws-ecs-patterns=1.38.0,@aws-cdk/aws-elasticache=1.38.0,@aws-cdk/aws-elasticloadbalancing=1.38.0,@aws-cdk/aws-elasticloadbalancingv2=1.38.0,@aws-cdk/aws-events=1.38.0,@aws-cdk/aws-events-targets=1.38.0,@aws-cdk/aws-iam=1.38.0,@aws-cdk/aws-kms=1.38.0,@aws-cdk/aws-lambda=1.38.0,@aws-cdk/aws-logs=1.38.0,@aws-cdk/aws-rds=1.38.0,@aws-cdk/aws-route53=1.38.0,@aws-cdk/aws-route53-targets=1.38.0,@aws-cdk/aws-s3=1.38.0,@aws-cdk/aws-s3-assets=1.38.0,@aws-cdk/aws-s3-deployment=1.38.0,@aws-cdk/aws-sam=1.38.0,@aws-cdk/aws-secretsmanager=1.38.0,@aws-cdk/aws-servicediscovery=1.38.0,@aws-cdk/aws-sns=1.38.0,@aws-cdk/aws-sns-subscriptions=1.38.0,@aws-cdk/aws-sqs=1.38.0,@aws-cdk/aws-ssm=1.38.0,@aws-cdk/aws-stepfunctions=1.38.0,@aws-cdk/cloud-assembly-schema=1.38.0,@aws-cdk/core=1.38.0,@aws-cdk/custom-resources=1.38.0,@aws-cdk/cx-api=1.38.0,@aws-cdk/region-info=1.38.0,jsii-runtime=Python/3.6.8
14901492

gitlab-ci/aws/cdk.yml

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
variables:
55
ENVIRONMENT: dev
66

7-
.Build Quasar PWA Assets:
7+
Build Quasar PWA Assets:
88
image: node:10
99
stage: build
1010
only:
@@ -25,35 +25,6 @@ variables:
2525
after_script:
2626
- echo "Build Complete"
2727

28-
.Sync Quasar PWA Assets:
29-
image: python:3.8
30-
stage: deploy
31-
only:
32-
- master
33-
dependencies:
34-
- "Build Quasar PWA Assets"
35-
before_script:
36-
- cd quasar
37-
- pip install awscli
38-
- aws iam get-user
39-
script:
40-
- |
41-
aws s3 sync \
42-
--delete \
43-
--exclude index.html \
44-
--exclude service-worker.js \
45-
./dist/pwa/ s3://${ENVIRONMENT}-${APP_NAME}-frontend/
46-
- |
47-
aws s3 cp \
48-
--cache-control 'max-age=0' \
49-
./dist/pwa/index.html s3://${ENVIRONMENT}-${APP_NAME}-frontend/
50-
- |
51-
aws s3 cp \
52-
--cache-control 'max-age=0' \
53-
./dist/pwa/service-worker.js s3://${ENVIRONMENT}-${APP_NAME}-frontend/
54-
after_script:
55-
- echo "Deploy frontend complete"
56-
5728
cdk deploy:
5829
image: docker:19.03.1
5930
services:
@@ -77,7 +48,7 @@ cdk deploy:
7748
- cdk bootstrap aws://$AWS_ACCOUNT_ID/$AWS_DEFAULT_REGION
7849
- cdk deploy --require-approval never
7950

80-
collectstatic: &task
51+
.collectstatic: &task
8152
image: python:3.8
8253
stage: deploy
8354
only:
@@ -101,7 +72,7 @@ collectstatic: &task
10172
--network-configuration "awsvpcConfiguration={subnets=[${subnets}],assignPublicIp=ENABLED}" \
10273
--count 1 \
10374
--launch-type FARGATE
104-
migrate:
75+
.migrate:
10576
<<: *task
10677
script:
10778
- |
@@ -112,7 +83,7 @@ migrate:
11283
--count 1 \
11384
--launch-type FARGATE
11485
115-
createsuperuser:
86+
.createsuperuser:
11687
<<: *task
11788
script:
11889
- |

0 commit comments

Comments
 (0)