2
2
set -e
3
3
4
4
KUBERNETES_NAMESPACE=" "
5
- KUBERNETES_DEPLOYMENT_NAME =" "
6
- APPLICATION_STARTUP_MESSAGE= " Application startup complete "
5
+ PR_NUMBER =" "
6
+ DEPLOY_SUCCESSFUL=true
7
7
8
- while getopts n:d:m : flag
8
+ while getopts n:p : flag
9
9
do
10
10
case " ${flag} " in
11
11
n) KUBERNETES_NAMESPACE=${OPTARG} ;;
12
- d) KUBERNETES_DEPLOYMENT_NAME=${OPTARG} ;;
13
- m) APPLICATION_STARTUP_MESSAGE=${OPTARG} ;;
12
+ p) PR_NUMBER=${OPTARG} ;;
14
13
esac
15
14
done
16
15
17
16
kubectl config set-context --current --namespace=$KUBERNETES_NAMESPACE
18
17
echo " Context set to namespace: \" $KUBERNETES_NAMESPACE \" "
19
18
20
- echo " Reading logs to determine application startup status for '$KUBERNETES_DEPLOYMENT_NAME '"
21
- echo " Searching for message: '$APPLICATION_STARTUP_MESSAGE '"
19
+ UPDATED_FILES=$( gh pr diff $PR_NUMBER --name-only)
20
+ while IFS= read -r file; do
21
+ if [[ $file != apps/* ]]; then
22
+ continue
23
+ fi
22
24
23
- LOG_CONTENTS=$( kubectl logs deployment/${KUBERNETES_DEPLOYMENT_NAME} \
24
- || echo " Waiting for application startuop ..." )
25
+ deploy=$( echo " $file " | cut -d/ -f 2)
25
26
26
- while [[ " $LOG_CONTENTS " != * " $APPLICATION_STARTUP_MESSAGE " * ]]; do
27
- echo " Waiting for application startup..."
28
- sleep 3
29
- LOG_CONTENTS=$( kubectl logs deployment/${KUBERNETES_DEPLOYMENT_NAME} \
30
- || echo " Waiting for application startuop ..." )
31
-
32
- if [[ " $LOG_CONTENTS " == * " ERROR" * ]]; then
33
- echo " Application startup failed:"
34
- echo " $LOG_CONTENTS "
35
- exit 1
27
+ set +e
28
+ kubectl rollout status deploy $deploy --timeout 30s
29
+ if [ $? -ne 0 ]; then
30
+ echo " ::error::Deployment $deploy failed to rollout"
31
+ DEPLOY_SUCCESSFUL=false
36
32
fi
37
- done
33
+ set -e
34
+
35
+ done <<< " $UPDATED_FILES"
38
36
39
- echo " Application startup successful:"
40
- echo " $LOG_CONTENTS "
37
+ if [ $DEPLOY_SUCCESSFUL = true ]; then
38
+ echo " ::notice::Automated release successful"
39
+ else
40
+ echo " ::error::Automated release failed"
41
+ exit 1
42
+ fi
0 commit comments