fix(test): 测试脚本有失败就 exit 1,256 个失败不再回绕成通过;非 registry 镜像不推送的断言改按带 --config 的 push 行匹配

This commit is contained in:
Lemon-miaow committed 2026-09-27 17:17:01 +08:00
1 parent 7718879bcd
commit b959c560cc
6 files changed
+18 -9

No files matched your search

+6
View File
@@ -138,6 +138,12 @@ jobs:
tar -xJf shellcheck.tar.xz tar -xJf shellcheck.tar.xz
./shellcheck-v0.11.0/shellcheck -S warning $(git ls-files '*.sh') ./shellcheck-v0.11.0/shellcheck -S warning $(git ls-files '*.sh')
# An exit status is 8 bits, so `exit "$fails"` reads 256 failures as a pass. The suites
# exit 1 on any failure; this keeps the next one from carrying its count out.
- name: No script exits with its failure count
run: |
if git grep -nE 'exit +"?\$\{?[a-z_]*fail[a-z_]*\}?"?[[:space:]]*$' -- '*.sh'; then exit 1; fi
- run: sh deploy/bootstrap_test.sh - run: sh deploy/bootstrap_test.sh
- run: sh deploy/uninstall_test.sh - run: sh deploy/uninstall_test.sh
- run: bash deploy/e2e_release_test.sh - run: bash deploy/e2e_release_test.sh
+8 -4
View File
@@ -1414,9 +1414,13 @@ expect "and pushed to exactly that endpoint, with the platform login" "DOCKER --
out="$(run_push registry.felis.svc:50000/felis/felis:demo)" out="$(run_push registry.felis.svc:50000/felis/felis:demo)"
expect "a ref outside the registry is refused with a warning" "WARN: not mirroring" "$out" expect "a ref outside the registry is refused with a warning" "WARN: not mirroring" "$out"
case "$out" in # The push runs with the platform login, `docker --config <dir> push`, so any docker line
*"DOCKER push"*) echo "FAIL: a non-registry ref must not be pushed"; fails=$((fails + 1)) ;; # with a push in it counts.
esac if printf '%s\n' "$out" | grep -q '^DOCKER .*push '; then
echo "FAIL a ref outside the registry was pushed: $out"; fails=$((fails + 1))
else
echo "PASS a ref outside the registry is not pushed"
fi
out="$(run_push registry.felis.svc:5000/felis/felis:demo 1)" out="$(run_push registry.felis.svc:5000/felis/felis:demo 1)"
expect "a failed push fails the install loudly" "DIE: could not mirror" "$out" expect "a failed push fails the install loudly" "DIE: could not mirror" "$out"
@@ -4605,5 +4609,5 @@ if [ "$fails" -eq 0 ]; then
echo "ALL PASS" echo "ALL PASS"
else else
echo "$fails FAILED" echo "$fails FAILED"
exit 1
fi fi
exit "$fails"
+1 -1
View File
@@ -240,5 +240,5 @@ if [ "$fails" -eq 0 ]; then
echo "ALL PASS (${phase})" echo "ALL PASS (${phase})"
else else
echo "${fails} FAILED (${phase})" echo "${fails} FAILED (${phase})"
exit 1
fi fi
exit "$fails"
+1 -1
View File
@@ -109,4 +109,4 @@ case "${1:-}" in
exit 2 exit 2
;; ;;
esac esac
exit "$fails" [ "$fails" -eq 0 ] || exit 1
+1 -2
View File
@@ -184,5 +184,4 @@ same " and says so" "::error::gh release view answered without a tag" "$out"
same " and writes no outputs" "" "$(cat "$root/out")" same " and writes no outputs" "" "$(cat "$root/out")"
echo echo
if [ "$fails" -eq 0 ]; then echo "ALL PASS"; else echo "${fails} FAILED"; fi if [ "$fails" -eq 0 ]; then echo "ALL PASS"; else echo "${fails} FAILED"; exit 1; fi
exit "$fails"
+1 -1
View File
@@ -387,5 +387,5 @@ if [ "$fails" -eq 0 ]; then
echo "ALL PASS" echo "ALL PASS"
else else
echo "$fails FAILED" echo "$fails FAILED"
exit 1
fi fi
exit "$fails"