1- # This workflow will build and push a new container image to Amazon ECR,
2- # and then will deploy a new task definition to Amazon ECS, when there is a push to the "main" branch.
3- #
4- # To use this workflow, you will need to complete the following set-up steps:
5- #
6- # 1. Create an ECR repository to store your images.
7- # For example: `aws ecr create-repository --repository-name my-ecr-repo --region us-east-2`.
8- # Replace the value of the `ECR_REPOSITORY` environment variable in the workflow below with your repository's name.
9- # Replace the value of the `AWS_REGION` environment variable in the workflow below with your repository's region.
10- #
11- # 2. Create an ECS task definition, an ECS cluster, and an ECS service.
12- # For example, follow the Getting Started guide on the ECS console:
13- # https://us-east-2.console.aws.amazon.com/ecs/home?region=us-east-2#/firstRun
14- # Replace the value of the `ECS_SERVICE` environment variable in the workflow below with the name you set for the Amazon ECS service.
15- # Replace the value of the `ECS_CLUSTER` environment variable in the workflow below with the name you set for the cluster.
16- #
17- # 3. Store your ECS task definition as a JSON file in your repository.
18- # The format should follow the output of `aws ecs register-task-definition --generate-cli-skeleton`.
19- # Replace the value of the `ECS_TASK_DEFINITION` environment variable in the workflow below with the path to the JSON file.
20- # Replace the value of the `CONTAINER_NAME` environment variable in the workflow below with the name of the container
21- # in the `containerDefinitions` section of the task definition.
22- #
23- # 4. Store an IAM user access key in GitHub Actions secrets named `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
24- # See the documentation for each action used below for the recommended IAM policies for this IAM user,
25- # and best practices on handling the access key credentials.
26-
271name : Publish to Amazon ECR
282
293on :
304 release :
315 types : [released]
6+ push :
7+ branches :
8+ - main
329
3310env :
3411 AWS_REGION : us-east-1 # set this to your preferred AWS region, e.g. us-west-1
3512 ECR_REPOSITORY : syscoin-bridge # set this to your Amazon ECR repository name
36- ECS_SERVICE : Bridge # set this to your Amazon ECS service name
37- ECS_CLUSTER : Bridge-Prod # set this to your Amazon ECS cluster name
38- ECS_TASK_DEFINITION : .aws/task-definition.json # set this to the path to your Amazon ECS task definition
39- # file, e.g. .aws/task-definition.json
40- CONTAINER_NAME : Bridge # set this to the name of the container in the
41- # containerDefinitions section of your task definition
42-
4313
4414permissions :
4515 contents : read
@@ -76,18 +46,13 @@ jobs:
7646 docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
7747 echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT
7848
79- - name : Fill in the new image ID in the Amazon ECS task definition
80- id : task-def
81- uses : aws-actions/amazon-ecs-render-task-definition@v1
82- with :
83- task-definition : ${{ env.ECS_TASK_DEFINITION }}
84- container-name : ${{ env.CONTAINER_NAME }}
85- image : ${{ steps.build-image.outputs.image }}
86-
87- - name : Deploy Amazon ECS task definition
88- uses : aws-actions/amazon-ecs-deploy-task-definition@v1
89- with :
90- task-definition : ${{ steps.task-def.outputs.task-definition }}
91- service : ${{ env.ECS_SERVICE }}
92- cluster : ${{ env.ECS_CLUSTER }}
93- wait-for-service-stability : true
49+ - name : Build, tag, and push image to Amazon ECR
50+ id : build-image-main
51+ if : github.ref_type == 'branch' && github.ref == 'main'
52+ env :
53+ ECR_REGISTRY : ${{ steps.login-ecr.outputs.registry }}
54+ IMAGE_TAG : latest
55+ run : |
56+ docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
57+ docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
58+ echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT
0 commit comments