Implement stage

This commit is contained in:
Layla 2020-04-30 23:47:00 -04:00
parent 77965b715f
commit 70b8236f4e
No known key found for this signature in database
GPG Key ID: A494D9357BA1BE31
3 changed files with 75 additions and 3 deletions

56
.github/workflows/build_stage.yml vendored Normal file
View File

@ -0,0 +1,56 @@
name: Build Stage
on:
push:
branches:
- master
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Push Tag to Docker Hub
uses: opspresso/action-docker@master
with:
args: --docker
env:
USERNAME: ${{ secrets.DOCKER_USERNAME }}
PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
BUILD_PATH: "server"
DOCKERFILE: "server/Dockerfile"
IMAGE_NAME: "josephbmanley/defend-together"
TAG_NAME: "stage"
LATEST: "false"
cloudformation:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2.1.0
with:
submodules: 'true'
- name: Ship to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --follow-symlinks --delete
env:
SOURCE_DIR: infrastructure/cloudformation
AWS_REGION: "us-east-1"
DEST_DIR: dt/stage/cloudformation
AWS_S3_BUCKET: sumu-stacks
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Deploy to AWS CloudFormation
uses: aws-actions/aws-cloudformation-github-deploy@v1
with:
name: dt-infrastructure-stage
template: infrastructure/cloudformation/dt/top.yaml
capabilities: "CAPABILITY_NAMED_IAM,CAPABILITY_IAM"
parameter-overrides: VpcId=${{ secrets.VPC_ID }},SubDomain=stage.dt,Domain=${{ secrets.DOMAIN }},environment=stage,DockerTag=stage,release=stage,PublicSubnets=${{ secrets.SUBNET_IDS }}

View File

@ -6,13 +6,23 @@ Parameters:
Description: The AWS CloudWatch log group to output logs to.
Default: "/ecs/dt"
environment:
Type: String
Description: Name of the environment to use in naming.
Default: production
DockerTag:
Description: Tag in DockerHub to deploy
Type: String
Default: "latest"
Resources:
LogGroup:
Type: AWS::Logs::LogGroup
Properties:
RetentionInDays: 7
LogGroupName: !Ref LogGroupName
LogGroupName: !Sub "${LogGroupName}/${environment}"
TaskDefinition:
Type: AWS::ECS::TaskDefinition
@ -20,7 +30,7 @@ Resources:
ContainerDefinitions:
- Name: defend-together
Essential: 'true'
Image: "josephbmanley/defend-together:latest"
Image: !Sub "josephbmanley/defend-together:${DockerTag}"
MemoryReservation: 800
PortMappings:
- HostPort: 0

View File

@ -12,11 +12,15 @@ Parameters:
Type: String
Description: Name of the release name of the stack version to use.
Default: production
AllowedValues: ['develop', 'production']
AllowedValues: ['develop', 'stage', 'production']
ConstraintDescription: "Must be a possible release version."
VpcId:
Description: ID of the VPC
Type: AWS::EC2::VPC::Id
DockerTag:
Description: Tag in DockerHub to deploy
Type: String
Default: "latest"
#-----------------
# Load Balancing
@ -95,7 +99,9 @@ Resources:
Properties:
TemplateURL: !Sub 'https://s3.${AWS::Region}.amazonaws.com/sumu-stacks/dt/${release}/cloudformation/dt/task.yaml'
Parameters:
environment: !Ref environment
LogGroupName: !Ref LogGroup
DockerTag: !Ref DockerTag
EcsService: