This repository has been archived by the owner on Sep 9, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
release.sh
executable file
·99 lines (82 loc) · 2.78 KB
/
release.sh
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
shopt -s nocasematch
# you can add variables like this to test locally. Just run ./release.sh. Note that to run on MAC, you must install bash 5.x.
# Then, to run the script you must do: /usr/local/bin/bash ./release.sh
# TEAMS_WEBHOOK_URL="foo.bar"
# TAG="1.2.3"
# Would like to use this, but can't get it to work in curl command
#export COMMON_CURL_HEADER=`printf -- '-H "PRIVATE-TOKEN:${GIT_API_TOKEN}" -H "Accept:application/json" -H "Content-Type:application/json"'`
export H_ACCEPT="Accept:application/json"
export H_CONTENT="Content-Type:application/json"
export H_TOKEN="PRIVATE-TOKEN:${GIT_API_TOKEN}"
# validate all of the required variables
check_required_variables() {
echo "Validating the required environment variables..."
[ -z "${TEAMS_WEBHOOK_URL}" ] && echo "TEAMS_WEBHOOK_URL variable not set" && exit 1
if [[ "$PROMOTION_TYPE" != "patch" && "$PROMOTION_TYPE" != "minor" && "$PROMOTION_TYPE" != "major" ]]; then
echo "PROMOTION_TYPE variable must be patch, minor, or major"
exit 1
fi
[ -z "${TAG}" ] && echo "TAG variable not set" && exit 1
[ -z "${SDK}" ] && echo "SDK variable not set" && exit 1
pat='[0-9]+\.[0-9]+\.[0-9]+'
if [[ ! ${TAG} =~ $pat ]]; then
echo "TAG variable must be of the form X.X.X"
exit 1
fi
return 0
}
get_sdk_version()
{
# pull out the SDK version from go.mod
ver=$(grep 'github.com/Axway/agent-sdk v' ./go.mod)
# Set space as the delimiter
IFS=' '
# Read the split words into an array
read -a strarr <<< $ver
export SDK=${strarr[1]}
}
post_to_teams() {
# don't post if this is a pre-release tag
pat='[0-9]+\.[0-9]+\.[0-9]+-'
if [[ ${TAG} =~ $pat ]]; then
echo "This is an interim release... skipping the post to Teams"
return 0
fi
rel_date=$(date +'%m/%d/%Y')
JSON="{
\"@type\": \"MessageCard\",
\"@context\": \"http://schema.org/extensions\",
\"summary\": \"Agent Release Info\",
\"sections\": [{
\"facts\": [{
\"name\": \"Date:\",
\"value\": \"${rel_date}\"
}, {
\"name\": \"Info:\",
\"value\": \"${1}\"
}]
}]
}"
curl -v ${TEAMS_WEBHOOK_URL} \
-H 'Content-Type: application/json' \
-d "${JSON}" &> /dev/null
}
main() {
# validate required variables
get_sdk_version
export PROMOTION_TYPE=$1
check_required_variables
exit -1
if [ $? -eq 1 ]; then
echo "No release info being generated."
exit 1
fi
# gather stats
releaseStats="- webMethods agents version: ${TAG}\n"
releaseStats+="- SDK version: ${SDK}\n"
echo -e "Full Release Info:\n"${releaseStats}
# post_to_teams "${releaseStats}"
exit 0
}
main $@