File tree Expand file tree Collapse file tree 1 file changed +31
-2
lines changed Expand file tree Collapse file tree 1 file changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -88,15 +88,44 @@ checkCurrentVersion() {
88
88
fi
89
89
}
90
90
91
+
92
+ sortSemver () {
93
+ local lines=" "
94
+ while read version; do
95
+ if [[ -z " ${lines} " ]] ; then
96
+ lines=$( printf ' %s' " ${version} " )
97
+ else
98
+ lines=$( printf ' %s\n%s' " ${lines} " " ${version} " )
99
+ fi
100
+ done
101
+ echo " $lines " | sed -r ' s:^v::' | sed -r ' s:-:~:' | sort -r -V | sed -r ' s:^:v:' | sed -r ' s:~:-:'
102
+ }
103
+
104
+ pickLatestRelease () {
105
+ local first=" "
106
+ while read version; do
107
+ first=" ${version} "
108
+ if [[ " ${version} " != * " -" * ]] ; then
109
+ echo " ${version} "
110
+ return
111
+ fi
112
+ done
113
+ echo " ${first} "
114
+ }
115
+
116
+ getReleasedTags () {
117
+ local releaseUrl=" ${1} "
118
+ curl -s " ${releaseUrl} " | grep " tag_name" | sed -r ' s;^[^:]+:[^"]*"([^"]+)".*;\1;'
119
+ }
120
+
91
121
getLatestRelease () {
92
122
local releaseUrl=" https://api.github.com/repos/${GITHUB_ORG} /${GITHUB_REPO} /releases"
93
123
local latest_release=" "
94
124
95
- latest_release=$( curl -s $releaseUrl | grep \" tag_name \" | grep -v rc | awk ' NR==1{print $2} ' | sed -n ' s/\"\(.*\)\",/\1/p ' )
125
+ latest_release=$( getReleasedTags $releaseUrl | sortSemver | pickLatestRelease )
96
126
ret_val=$latest_release
97
127
}
98
128
99
-
100
129
createTmpDir () {
101
130
ret_val=$( mktemp -dt ${BINARY_FILENAME} -tmp)
102
131
}
You can’t perform that action at this time.
0 commit comments