Implement stage
This commit is contained in:
		
							
								
								
									
										56
									
								
								.github/workflows/build_stage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								.github/workflows/build_stage.yml
									
									
									
									
										vendored
									
									
										Normal 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 }}
 | 
				
			||||||
@ -6,13 +6,23 @@ Parameters:
 | 
				
			|||||||
    Description: The AWS CloudWatch log group to output logs to.
 | 
					    Description: The AWS CloudWatch log group to output logs to.
 | 
				
			||||||
    Default: "/ecs/dt"
 | 
					    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:
 | 
					Resources:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  LogGroup:
 | 
					  LogGroup:
 | 
				
			||||||
    Type: AWS::Logs::LogGroup
 | 
					    Type: AWS::Logs::LogGroup
 | 
				
			||||||
    Properties:
 | 
					    Properties:
 | 
				
			||||||
      RetentionInDays: 7
 | 
					      RetentionInDays: 7
 | 
				
			||||||
      LogGroupName: !Ref LogGroupName
 | 
					      LogGroupName: !Sub "${LogGroupName}/${environment}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TaskDefinition:
 | 
					  TaskDefinition:
 | 
				
			||||||
    Type: AWS::ECS::TaskDefinition
 | 
					    Type: AWS::ECS::TaskDefinition
 | 
				
			||||||
@ -20,7 +30,7 @@ Resources:
 | 
				
			|||||||
      ContainerDefinitions:
 | 
					      ContainerDefinitions:
 | 
				
			||||||
      - Name: defend-together
 | 
					      - Name: defend-together
 | 
				
			||||||
        Essential: 'true'
 | 
					        Essential: 'true'
 | 
				
			||||||
        Image: "josephbmanley/defend-together:latest"
 | 
					        Image: !Sub "josephbmanley/defend-together:${DockerTag}"
 | 
				
			||||||
        MemoryReservation: 800
 | 
					        MemoryReservation: 800
 | 
				
			||||||
        PortMappings:
 | 
					        PortMappings:
 | 
				
			||||||
        - HostPort: 0
 | 
					        - HostPort: 0
 | 
				
			||||||
 | 
				
			|||||||
@ -12,11 +12,15 @@ Parameters:
 | 
				
			|||||||
    Type: String
 | 
					    Type: String
 | 
				
			||||||
    Description: Name of the release name of the stack version to use.
 | 
					    Description: Name of the release name of the stack version to use.
 | 
				
			||||||
    Default: production
 | 
					    Default: production
 | 
				
			||||||
    AllowedValues: ['develop', 'production']
 | 
					    AllowedValues: ['develop', 'stage', 'production']
 | 
				
			||||||
    ConstraintDescription: "Must be a possible release version."
 | 
					    ConstraintDescription: "Must be a possible release version."
 | 
				
			||||||
  VpcId:
 | 
					  VpcId:
 | 
				
			||||||
    Description: ID of the VPC
 | 
					    Description: ID of the VPC
 | 
				
			||||||
    Type: AWS::EC2::VPC::Id
 | 
					    Type: AWS::EC2::VPC::Id
 | 
				
			||||||
 | 
					  DockerTag:
 | 
				
			||||||
 | 
					    Description: Tag in DockerHub to deploy
 | 
				
			||||||
 | 
					    Type: String
 | 
				
			||||||
 | 
					    Default: "latest"
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  #-----------------
 | 
					  #-----------------
 | 
				
			||||||
  # Load Balancing 
 | 
					  # Load Balancing 
 | 
				
			||||||
@ -95,7 +99,9 @@ Resources:
 | 
				
			|||||||
    Properties:
 | 
					    Properties:
 | 
				
			||||||
      TemplateURL: !Sub 'https://s3.${AWS::Region}.amazonaws.com/sumu-stacks/dt/${release}/cloudformation/dt/task.yaml'
 | 
					      TemplateURL: !Sub 'https://s3.${AWS::Region}.amazonaws.com/sumu-stacks/dt/${release}/cloudformation/dt/task.yaml'
 | 
				
			||||||
      Parameters:
 | 
					      Parameters:
 | 
				
			||||||
 | 
					        environment: !Ref environment
 | 
				
			||||||
        LogGroupName: !Ref LogGroup
 | 
					        LogGroupName: !Ref LogGroup
 | 
				
			||||||
 | 
					        DockerTag: !Ref DockerTag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  EcsService:
 | 
					  EcsService:
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user