Skip to content

Commit f4cac80

Browse files
authored
Merge pull request #5 from aganesh-suse/captain-fail-fix
Captain fail fix
2 parents ded0341 + a16ec8c commit f4cac80

2 files changed

Lines changed: 67 additions & 14 deletions

File tree

.github/workflows/precheck-flight-captain.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ on:
1010
rke2_versions:
1111
description: 'Provide the list of rke2 versions (comma separated)'
1212
required: true
13-
default: 'v1.34.0-rc1+rke2r1,v1.33.4-rc1+rke2r1,v1.32.8-rc1+rke2r1,v1.31.12-rc1+rke2r1,v1.30.14-rc1+rke2r3'
13+
default: 'v1.34.0-rc1+rke2r1,v1.33.4-rc1+rke2r1,v1.32.8-rc1+rke2r1,v1.31.12-rc1+rke2r1'
14+
rke2_lts_versions:
15+
description: 'Provide the list of rke2 lts versions to test prime registry (comma separated)'
16+
required: true
17+
default: 'v1.30.14-rc1+rke2r3'
1418
page_size:
1519
description: 'Page size for API queries'
1620
required: false
@@ -35,3 +39,9 @@ jobs:
3539
working-directory: ./scripts
3640
run: ./captain.sh -v "${{ github.event.inputs.k3s_versions }}","${{ github.event.inputs.rke2_versions }}" -d -p "${{ github.event.inputs.page_size }}"
3741
shell: sh
42+
43+
- name: Run the captain shell script for LTS RKE2 versions
44+
working-directory: ./scripts
45+
if: ${{ github.event.inputs.rke2_lts_versions != '' }}
46+
run: ./captain.sh -l "${{ github.event.inputs.rke2_lts_versions }}" -d
47+
shell: sh

scripts/captain.sh

Lines changed: 56 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
#!/bin/sh
22

3-
while getopts v:p:dh OPTION
3+
while getopts v:l:p:dh OPTION
44
do
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"
@@ -17,6 +24,7 @@ do
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
"
@@ -39,6 +47,7 @@ fi
3947

4048
SEED=$(date +%s)
4149
RANDOM_INT=$(awk -v seed="${SEED}" 'BEGIN { srand(seed); print int(rand() * 100) }')
50+
FAILURE_FILE="failure_results_${RANDOM_INT}"
4251

4352
debug_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
217243
VERSIONS=$(echo "${INPUT}" | tr "," "\n")
218244
for VERSION in $VERSIONS
@@ -231,16 +257,33 @@ do
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"
246276
done
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

Comments
 (0)