1- name : Dev Deploy to Elastic Beanstalk
1+ name : Dev Deploy to Amazon ECS
22
33on :
44 push :
5- branches : [ "feature/#143 " ]
5+ branches : [ "develop " ]
66
77env :
88 AWS_REGION : ap-northeast-2
99 ECR_REPOSITORY : routebox-dev
10- EB_APP_NAME : routebox
11- EB_ENV_NAME : Routebox-dev-env
12- DOCKER_IMAGE_TAG : ${{ github.sha }}
10+ ECS_SERVICE : routebox-service-dev
11+ ECS_CLUSTER : routebox-dev-cluster
12+ ECS_TASK_DEFINITION : routebox-task-definition-dev.json
13+ CONTAINER_NAME : routebox-dev
1314
1415permissions :
1516 contents : read
3536
3637 - name : Copy Secret
3738 env :
38- CREATE_SECRET : ${{ secrets.ENV_DEV }}
39+ CREATE_SECRET : ${{secrets.ENV_DEV}}
3940 CREATE_SECRET_DIR : src/main/resources
4041 CREATE_SECRET_DIR_FILE_NAME : env.properties
4142 run : echo $CREATE_SECRET | base64 --decode > $CREATE_SECRET_DIR/$CREATE_SECRET_DIR_FILE_NAME
@@ -44,38 +45,40 @@ jobs:
4445 run : ./gradlew build
4546
4647 - name : Configure AWS credentials
47- uses : aws-actions/configure-aws-credentials@v2
48+ uses : aws-actions/configure-aws-credentials@v1
4849 with :
4950 aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
5051 aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
5152 aws-region : ${{ env.AWS_REGION }}
5253
53- - name : Copy dev compose file
54- run : cp docker-compose.dev.yml docker-compose.yml
55-
5654 - name : Login to Amazon ECR
5755 id : login-ecr
58- run : |
59- aws ecr get-login-password --region $AWS_REGION | \
60- docker login --username AWS --password-stdin ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.$AWS_REGION.amazonaws.com
56+ uses : aws-actions/amazon-ecr-login@v1
6157
62- - name : Build, tag, and push Docker image to Amazon ECR
58+ - name : Build, tag, and push image to Amazon ECR
6359 id : build-image
60+ env :
61+ ECR_REGISTRY : ${{ steps.login-ecr.outputs.registry }}
62+ IMAGE_TAG : ${{ github.sha }}
6463 run : |
65- IMAGE_URI=${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPOSITORY:$DOCKER_IMAGE_TAG
66- docker build -t $IMAGE_URI .
67- docker push $IMAGE_URI
68- echo "image=$IMAGE_URI" >> $GITHUB_OUTPUT
69-
70- - name : Install EB CLI
71- run : |
72- pip install --upgrade --user awsebcli
73- echo "$HOME/.local/bin" >> $GITHUB_PATH
74-
75- - name : EB Init
76- run : |
77- eb init ${{ env.EB_APP_NAME }} --platform "Docker running on 64bit Amazon Linux 2023" --region ${{ env.AWS_REGION }}
78- eb use ${{ env.EB_ENV_NAME }}
64+ # Build a docker container and
65+ # push it to ECR so that it can
66+ # be deployed to ECS.
67+ docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
68+ docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
69+ echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT
70+ - name : Fill in the new image ID in the Amazon ECS task definition
71+ id : task-def
72+ uses : aws-actions/amazon-ecs-render-task-definition@v1
73+ with :
74+ task-definition : ${{ env.ECS_TASK_DEFINITION }}
75+ container-name : ${{ env.CONTAINER_NAME }}
76+ image : ${{ steps.build-image.outputs.image }}
7977
80- - name : Deploy to Elastic Beanstalk
81- run : eb deploy --staged --verbose
78+ - name : Deploy Amazon ECS task definition
79+ uses : aws-actions/amazon-ecs-deploy-task-definition@v1
80+ with :
81+ task-definition : ${{ steps.task-def.outputs.task-definition }}
82+ service : ${{ env.ECS_SERVICE }}
83+ cluster : ${{ env.ECS_CLUSTER }}
84+ wait-for-service-stability : true
0 commit comments