-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
75 lines (66 loc) · 2.27 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
name: 'Deploy'
description: 'Deploy to code deploy target group'
inputs:
aws-access-key-id:
description: 'aws access key id'
required: true
aws-secret-access-key:
description: 'aws secret access key'
required: true
aws-region:
description: 'aws region'
required: true
application-name:
description: 'aws deploy application name'
required: true
deployment-group-name:
description: 'aws deploy deployment group name'
required: true
s3-bucket:
description: 'aws deploy s3 bucket'
required: true
s3-key:
description: 'aws deploy s3 key'
required: true
runs:
using: 'composite'
steps:
# https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ inputs.aws-access-key-id }}
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
aws-region: ${{ inputs.aws-region }}
- shell: bash
run: |
deployment=$(aws deploy create-deployment --application-name ${{ inputs.application-name }} --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name ${{ inputs.deployment-group-name }} --description "Deploy build ${GITHUB_RUN_NUMBER} via Github Actions" --s3-location bucket="${{ inputs.s3-bucket }},bundleType=zip,key=${{ inputs.s3-key }}" --query 'deploymentId' --output text)
echo "Deployment ID=${deployment}"
counter=1
while [ ${counter} -lt 120 ]; do
status=$(aws deploy get-deployment --deployment-id ${deployment} --query 'deploymentInfo.status' --output text)
case ${status} in
Succeeded)
echo "Deployment succeeded"
exit 0
;;
Failed)
echo "Deployment failed"
exit 1
;;
Stopped)
echo "Deployment stopped"
exit 1
;;
Ready)
echo "Deployment ready"
exit 0
;;
*)
((counter++))
echo "Deployment status=${status}..."
sleep 5
;;
esac
done
echo "Aborting deployment monitoring as > 5 mins!"