diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d877232..06c1889 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,6 +33,7 @@ jobs: uses: battila7/get-version-action@v2.0.0 - name: Build, tag, and push image to Amazon ECR + id: build-image env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} ECR_REPOSITORY: goff @@ -42,3 +43,20 @@ jobs: docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest + echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" + + - name: Fill in the new image ID in the Amazon ECS task definition + id: task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1 + with: + task-definition: task-definition.json + container-name: "goff" + image: ${{ steps.build-image.outputs.image }} + + - name: Deploy Amazon ECS task definition + uses: aws-actions/amazon-ecs-deploy-task-definition@v1 + with: + task-definition: ${{ steps.task-def.outputs.task-definition }} + service: "goff" + cluster: "discord-bots" + wait-for-service-stability: true diff --git a/task-definition.json b/task-definition.json new file mode 100644 index 0000000..0c627b0 --- /dev/null +++ b/task-definition.json @@ -0,0 +1,134 @@ +{ + "ipcMode": null, + "executionRoleArn": "arn:aws:iam::005692590034:role/goff_ecs_rds+cw+ecr", + "containerDefinitions": [ + { + "dnsSearchDomains": null, + "environmentFiles": null, + "logConfiguration": { + "logDriver": "awslogs", + "secretOptions": null, + "options": { + "awslogs-group": "/ecs/goff", + "awslogs-region": "us-east-1", + "awslogs-stream-prefix": "ecs" + } + }, + "entryPoint": null, + "portMappings": [], + "command": null, + "linuxParameters": null, + "cpu": 0, + "environment": [], + "resourceRequirements": null, + "ulimits": null, + "dnsServers": null, + "mountPoints": [], + "workingDirectory": null, + "secrets": [ + { + "valueFrom": "goff_database_uri", + "name": "DATABASE_URL" + }, + { + "valueFrom": "goff_discord_token", + "name": "DISCORDGO_TOKEN" + }, + { + "valueFrom": "goff_email_password", + "name": "GOFF_EMAIL_PASSWORD" + }, + { + "valueFrom": "goff_email_username", + "name": "GOFF_EMAIL_USERNAME" + } + ], + "dockerSecurityOptions": null, + "memory": 512, + "memoryReservation": null, + "volumesFrom": [], + "stopTimeout": null, + "image": "005692590034.dkr.ecr.us-east-1.amazonaws.com/goff:latest", + "startTimeout": null, + "firelensConfiguration": null, + "dependsOn": null, + "disableNetworking": null, + "interactive": null, + "healthCheck": null, + "essential": true, + "links": null, + "hostname": null, + "extraHosts": null, + "pseudoTerminal": null, + "user": null, + "readonlyRootFilesystem": null, + "dockerLabels": null, + "systemControls": null, + "privileged": null, + "name": "goff" + } + ], + "placementConstraints": [], + "memory": "512", + "taskRoleArn": "arn:aws:iam::005692590034:role/goff_ecs_rds+cw+ecr", + "compatibilities": [ + "EC2" + ], + "taskDefinitionArn": "arn:aws:ecs:us-east-1:005692590034:task-definition/goff:2", + "family": "goff", + "requiresAttributes": [ + { + "targetId": null, + "targetType": null, + "value": null, + "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" + }, + { + "targetId": null, + "targetType": null, + "value": null, + "name": "ecs.capability.execution-role-awslogs" + }, + { + "targetId": null, + "targetType": null, + "value": null, + "name": "com.amazonaws.ecs.capability.ecr-auth" + }, + { + "targetId": null, + "targetType": null, + "value": null, + "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" + }, + { + "targetId": null, + "targetType": null, + "value": null, + "name": "com.amazonaws.ecs.capability.task-iam-role" + }, + { + "targetId": null, + "targetType": null, + "value": null, + "name": "ecs.capability.execution-role-ecr-pull" + }, + { + "targetId": null, + "targetType": null, + "value": null, + "name": "ecs.capability.secrets.ssm.environment-variables" + } + ], + "pidMode": null, + "requiresCompatibilities": [ + "EC2" + ], + "networkMode": null, + "cpu": "1024", + "revision": 2, + "status": "ACTIVE", + "inferenceAccelerators": null, + "proxyConfiguration": null, + "volumes": [] +}