1
1
# Copyright 2020 ChainSafe Systems
2
2
# SPDX-License-Identifier: LGPL-3.0-only
3
3
4
- name : Build & Push Docker Image to AWS ECR
4
+ name : Build & Deploy PROD
5
5
6
6
on :
7
7
push :
8
- branches :
9
- - main
8
+ tags :
9
+ - ' v*'
10
+ workflow_dispatch :
10
11
11
12
env :
12
13
AWS_REGION : ${{ secrets.AWS_REGION }}
13
14
AWS_ACCOUNT_ID : ${{ secrets.AWS_ACCOUNT_ID }}
14
- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
15
- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
16
15
ECR_REPO : ${{ secrets.AWS_ECR_REPO }}
17
-
16
+ ECS_CLUSTER : ${{ secrets.AWS_ECS_CLUSTER }}
17
+ ECS_SERVICE : ${{ secrets.AWS_ECS_SERVICE }}
18
+ ENVIRONMENT : PROD
19
+
18
20
jobs :
19
21
build :
20
- name : build_prod
22
+ name : build_deploy_prod
21
23
runs-on : ubuntu-latest
24
+ permissions :
25
+ id-token : write
26
+ contents : write
22
27
23
28
steps :
24
29
# download the source code into the runner
25
30
- name : checkout
26
31
uses : actions/checkout@v2
27
-
28
- - name : short sha
32
+
33
+ - name : Set output
29
34
id : vars
30
- run : echo "::set-output name=sha::$(git rev-parse --short HEAD)"
35
+ run : echo ::set-output name=tag::${GITHUB_REF#refs/*/}
36
+
37
+ - name : Configure AWS credentials
38
+ uses : aws-actions/configure-aws-credentials@v1
39
+ with :
40
+ role-to-assume : arn:aws:iam::${{ env.AWS_ACCOUNT_ID }}:role/github-actions-role
41
+ aws-region : ${{ env.AWS_REGION }}
31
42
32
43
# gather metadata from git & github actions to reference in docker
33
44
- name : git & github metadata
48
59
file : ./Dockerfile
49
60
push : true
50
61
tags : |
51
- ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.AWS_ECR_REPO }}:latest
52
- ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.AWS_ECR_REPO }}:${{ steps.vars.outputs.sha }}
62
+ ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPO }}:latest
63
+ ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPO }}:${{ steps.vars.outputs.tag }}
64
+
65
+ # deploy to AWS ECS
66
+ - name : Deploy to Amazon ECS
67
+ uses : aws-actions/amazon-ecs-deploy-task-definition@v1
68
+ with :
69
+ task-definition : infra/aws-ecs/task_definition_${{ env.ENVIRONMENT }}.json
70
+ service : ${{ env.ECS_SERVICE }}
71
+ cluster : ${{ env.ECS_CLUSTER }}
72
+ wait-for-service-stability : true
73
+
0 commit comments