11#! /bin/sh
22
3- while getopts v:p:dh OPTION
3+ while getopts v:l: p:dh OPTION
44do
55 case " ${OPTION} "
66 in
7- v) INPUT=${OPTARG} ;;
7+ v)
8+ INPUT=${OPTARG}
9+ LTS=" false"
10+ ;;
11+ l)
12+ INPUT=${OPTARG}
13+ LTS=" true"
14+ ;;
815 p) PAGE_SIZE=${OPTARG} ;;
916 d) DEBUG=" true"
1017 echo " DEBUG mode is ON"
1724
1825 -d: debug. If flag is used, debug mode is ON and prints the curl commands executed.
1926 -v: version to test. Ex: v1.31.6-rc1+rke2r1,v1.31.6-rc1+k3s1,v1.31.5+rke2r1
27+ -l: LTS version to test. Ex: v1.30.14-rc6+rke2r3
2028 -p: page size for curl commands to fetch data from docker hub or github. Default is 200.
2129 -h: help - usage is displayed
2230 "
3947
4048SEED=$( date +%s)
4149RANDOM_INT=$( awk -v seed=" ${SEED} " ' BEGIN { srand(seed); print int(rand() * 100) }' )
50+ FAILURE_FILE=" failure_results_${RANDOM_INT} "
4251
4352debug_log () {
4453 if [ " ${DEBUG} " = true ]; then
@@ -55,7 +64,7 @@ verify_count () {
5564 if [ " ${COUNT} " -eq " ${EXPECTED_COUNT} " ] || [ " ${COUNT} " -gt " ${EXPECTED_COUNT} " ]; then
5665 echo " PASS: ${DESCRIPTION} Count is ${COUNT} ."
5766 else
58- echo " FAIL: Not found enough ${DESCRIPTION} . Expected count ${EXPECTED_COUNT} but got ${COUNT} ."
67+ echo " FAIL: ${VERSION} : Not found enough ${DESCRIPTION} . Expected count ${EXPECTED_COUNT} but got ${COUNT} ." | tee -a " ${FAILURE_FILE} "
5968 fi
6069}
6170
@@ -207,12 +216,29 @@ verify_prime_registry () {
207216 skopeo list-tags " ${SYS_AGENT_INSTALLER_URL} " | grep " ${VERSION_PREFIX} " | grep " ${VERSION_SUFFIX} " | tee -a " ${SYS_AGENT_OUTFILE} "
208217
209218 SYS_AGENT_COUNT=$( wc -l < " ${SYS_AGENT_OUTFILE} " )
210- verify_count " ${SYS_AGENT_COUNT} " " 1" " System Agent Installer for ${PRODUCT} (in prime registry)"
211219
220+ if echo " ${VERSION_PREFIX} " | grep -q " rc" ; then
221+ verify_count " ${SYS_AGENT_COUNT} " " 0" " System Agent Installer for ${PRODUCT} (in prime registry)"
222+ else
223+ verify_count " ${SYS_AGENT_COUNT} " " 1" " System Agent Installer for ${PRODUCT} (in prime registry)"
224+ fi
225+
212226 rm -rf " ${SYS_AGENT_OUTFILE} "
213227 rm -rf " ${RKE2_RUNTIME_OUTFILE} "
214228}
215229
230+ verify_lts () {
231+ LTS_OUT_FILE=" lts_output_${RANDOM_INT} "
232+ if echo " ${VERSION_PREFIX} " | grep -q " rc" ; then
233+ LTS_URL=" https://prime.ribs.rancher.io/index-prerelease.html"
234+ else
235+ LTS_URL=" https://prime.ribs.rancher.io"
236+ fi
237+ curl " ${LTS_URL} " > " ${LTS_OUT_FILE} "
238+ LTS_COUNT=$( grep -cE " ${VERSION_PREFIX} .*${VERSION_SUFFIX} " " ${LTS_OUT_FILE} " )
239+ verify_count " ${LTS_COUNT} " " 76" " LTS count check against Prime registry"
240+ }
241+
216242# Main script execution starts here
217243VERSIONS=$( echo " ${INPUT} " | tr " ," " \n" )
218244for VERSION in $VERSIONS
231257
232258 echo " Version under test: ${VERSION} ; Prefix: ${VERSION_PREFIX} Suffix: ${VERSION_SUFFIX} "
233259
234- verify_system_agent_installers
235- verify_upgrade_images
236- verify_releases
237- if [ " ${PRODUCT} " = " rke2" ]; then
238- verify_rke2_packaging
239- verify_release_asset_count_rke2
260+ if [ " ${LTS} " = " false" ]; then
261+ verify_system_agent_installers
262+ verify_upgrade_images
263+ verify_releases
264+ if [ " ${PRODUCT} " = " rke2" ]; then
265+ verify_rke2_packaging
266+ verify_release_asset_count_rke2
267+ else
268+ verify_release_asset_count_k3s
269+ fi
270+ verify_prime_registry
240271 else
241- verify_release_asset_count_k3s
272+ verify_lts
242273 fi
243- verify_prime_registry
244-
274+
245275 printf " ===================== DONE ==========================\n"
246276done
277+
278+ if [ -f $FAILURE_FILE ]; then
279+ printf " ==========================================================================
280+ FAILURE SUMMARY
281+ ==========================================================================\n"
282+ cat " ${FAILURE_FILE} "
283+ printf " ===================== DONE ==========================\n"
284+ echo " Found failures. Exiting with status 1"
285+ rm -rf " ${FAILURE_FILE} "
286+ exit 1
287+ fi
288+
289+ rm -rf " ${FAILURE_FILE} "
0 commit comments