Skip to content

Commit dc8d76e

Browse files
authored
Merge pull request #518 from mlrun/1.3.x-dev
1.3.x dev
2 parents 3657088 + 72832ca commit dc8d76e

File tree

1 file changed

+48
-7
lines changed

1 file changed

+48
-7
lines changed

update_demos.sh

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
set -o errexit
44
set -o pipefail
55

6-
SCRIPT="$(basename $0)"
7-
product="Iguazio Data Science Platform"
6+
SCRIPT="$(basename "$0")"
87

98
git_owner=mlrun
109
git_repo=demos
@@ -50,6 +49,42 @@ error_usage()
5049
exit 1
5150
}
5251

52+
get_latest_tag() {
53+
local mlrun_version="$1"
54+
local git_owner="$2"
55+
local git_repo="$3"
56+
local git_base_url="$4" # Unused in this function but can be useful for future enhancements
57+
local git_url="$5"
58+
59+
# Fetch tags from git
60+
local tags=$(git ls-remote --tags --refs --sort='v:refname' "${git_url}" | awk '{print $2}')
61+
62+
local latest_release=""
63+
local latest_rc=""
64+
65+
# Parse
66+
while IFS= read -r tag; do
67+
tag=${tag#refs/tags/}
68+
69+
# Check if tag matches the target
70+
if [[ $tag =~ ^v${mlrun_version} ]]; then
71+
if [[ $tag == *"-rc"* ]]; then
72+
latest_rc=$tag
73+
else
74+
latest_release=$tag
75+
fi
76+
fi
77+
done <<< "$tags"
78+
79+
if [[ -n "$latest_release" ]]; then
80+
echo "$latest_release"
81+
elif [[ -n "$latest_rc" ]]; then
82+
echo "$latest_rc"
83+
else
84+
echo "No matching tags found."
85+
fi
86+
}
87+
5388
while :
5489
do
5590
case $1 in
@@ -113,10 +148,12 @@ if [ -z "${user}" ]; then
113148
error_usage "Missing username."
114149
fi
115150

151+
# shellcheck disable=SC2236
116152
if [ ! -z "${dry_run}" ]; then
117153
echo "Dry run; no files will be copied."
118154
fi
119155

156+
# shellcheck disable=SC2236
120157
if [ ! -z "${no_backup}" ]; then
121158
echo "The existing demos directory won't be backed up before the update."
122159
fi
@@ -136,11 +173,15 @@ if [ -z "${branch}" ]; then
136173
echo "Looking for demos for the specified MLRun version - ${mlrun_version}."
137174
fi
138175

139-
tag_prefix=`echo ${mlrun_version} | cut -d . -f1-2`
140-
latest_tag=`git ls-remote --tags --refs --sort=-v:refname ${git_base_url} | grep ${mlrun_version%%r*} | grep -v '\^{}' | grep -v 'rc' | grep -v 'RC' | head -n1 | awk '{print $2}' | sed 's#refs/tags/##'`
176+
# shellcheck disable=SC2006
177+
tag_prefix=`echo "${mlrun_version}" | cut -d . -f1-2`
178+
# shellcheck disable=SC2006
179+
latest_tag=$(get_latest_tag "${mlrun_version}" "${git_owner}" "${git_repo}" "${git_base_url}" "${git_url}")
180+
echo $latest_tag
141181
if [ -z "${latest_tag}" ]; then
142182
error_exit "Couldn't locate a Git tag with prefix 'v${tag_prefix}.*'."
143-
latest_tag=`git ls-remote --tags --refs --sort=-v:refname ${git_base_url} | grep ${mlrun_version%%r*} | grep -v '\^{}' | head -n1 | awk '{print $2}' | sed 's#refs/tags/##'`
183+
# shellcheck disable=SC2006
184+
latest_tag=`git ls-remote --tags --refs --sort=-v:refname ${git_base_url} | grep "${mlrun_version%%r*}" | grep -v '\^{}' | head -n1 | awk '{print $2}' | sed 's#refs/tags/##'`
144185
else
145186
# Remove the prefix from the Git tag
146187
branch=${latest_tag#refs/tags/}
@@ -153,7 +194,7 @@ demos_dir="${dest_dir}/demos"
153194
echo "Updating demos from ${git_url} branch ${branch} to '${demos_dir}'..."
154195

155196
temp_dir=$(mktemp -d /tmp/temp-get-demos.XXXXXXXXXX)
156-
trap "{ rm -rf $temp_dir; }" EXIT
197+
trap '{ rm -rf $temp_dir; }' EXIT
157198
echo "Copying files to a temporary directory '${temp_dir}'..."
158199

159200
tar_url="${git_base_url}/archive/${branch}.tar.gz"
@@ -188,4 +229,4 @@ fi
188229
echo "Deleting temporary directory '${temp_dir}..."
189230
rm -rf "${temp_dir}"
190231

191-
echo "DONE"
232+
echo "DONE"

0 commit comments

Comments
 (0)