Initial commit

This commit is contained in:
undergroundwires
2019-12-31 16:09:39 +01:00
commit 4e7f244190
108 changed files with 17296 additions and 0 deletions

91
.github/workflows/build-and-deploy.yaml vendored Normal file
View File

@@ -0,0 +1,91 @@
name: Build & deploy
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-18.04
steps:
-
name: "Prepare: Checkout"
uses: actions/checkout@v1
-
name: "Prepare: Create AWS user profile"
run: >-
bash "aws/scripts/configure/create-user-profile.sh" \
--profile user \
--access-key-id ${{secrets.AWS_DEPLOYMENT_USER_ACCESS_KEY_ID}} \
--secret-access-key ${{secrets.AWS_DEPLOYMENT_USER_SECRET_ACCESS_KEY}} \
--region us-east-1
-
name: "Infrastructure: Deploy IAM stack"
run: >-
bash "aws/scripts/deploy/deploy-stack.sh" \
--template-file aws/iam-stack.yaml \
--stack-name privacysexy-iam-stack \
--capabilities CAPABILITY_IAM \
--region us-east-1 --role-arn ${{secrets.AWS_IAM_STACK_DEPLOYMENT_ROLE_ARN}} \
--profile user --session ${{github.actor}}-${{github.event_name}}-${{github.sha}}
-
name: "Infrastructure: Deploy certificate stack"
run: >-
bash "aws/scripts/deploy/deploy-stack.sh" \
--template-file aws/certificate-stack.yaml \
--stack-name privacysexy-certificate-stack \
--region us-east-1 \
--role-arn ${{secrets.AWS_CERTIFICATE_STACK_DEPLOYMENT_ROLE_ARN}} \
--profile user --session ${{github.actor}}-${{github.event_name}}-${{github.sha}}
-
name: "Infrastructure: Deploy DNS stack"
run: >-
bash "aws/scripts/deploy/deploy-stack.sh" \
--template-file aws/dns-stack.yaml \
--stack-name privacysexy-dns-stack \
--region us-east-1 \
--role-arn ${{secrets.AWS_DNS_STACK_DEPLOYMENT_ROLE_ARN}} \
--profile user --session ${{github.actor}}-${{github.event_name}}-${{github.sha}}
-
name: "Infrastructure: Deploy web stack"
run: >-
bash "aws/scripts/deploy/deploy-stack.sh" \
--template-file aws/web-stack.yaml \
--stack-name privacysexy-web-stack \
--region us-east-1 \
--role-arn ${{secrets.AWS_WEB_STACK_DEPLOYMENT_ROLE_ARN}} \
--profile user --session ${{github.actor}}-${{github.event_name}}-${{github.sha}}
-
name: "App: Setup node"
uses: actions/setup-node@v1
with:
node-version: '11.x'
-
name: "App: Install dependencies"
run: npm install
-
name: "App: Run tests"
run: npm run test:unit
-
name: "App: Build"
run: npm run build
-
name: "App: Deploy to S3"
run: >-
bash "aws/scripts/deploy/deploy-to-s3.sh" \
--folder dist \
--web-stack-name privacysexy-web-stack --web-stack-s3-name-output-name S3BucketName \
--storage-class ONEZONE_IA \
--role-arn ${{secrets.AWS_S3_SITE_DEPLOYMENT_ROLE_ARN}} \
--region us-east-1 \
--profile user --session ${{github.actor}}-${{github.event_name}}-${{github.sha}}
-
name: "App: Invalidate CloudFront cache"
run: >-
bash "aws/scripts/deploy/invalidate-cloudfront-cache.sh" \
--paths "/*" \
--web-stack-name privacysexy-web-stack --web-stack-cloudfront-arn-output-name CloudFrontDistributionArn \
--role-arn ${{secrets.AWS_CLOUDFRONT_SITE_DEPLOYMENT_ROLE_ARN}} \
--region us-east-1 \
--profile user --session ${{github.actor}}-${{github.event_name}}-${{github.sha}}