Unverified Commit b959c560 authored by Lemon-miaow's avatar Lemon-miaow
Browse files

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

parent 7718879b
Loading
Loading
Loading
Loading
+6 −0
Changes for .github/workflows/ci.yml: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -138,6 +138,12 @@ jobs:
          tar -xJf shellcheck.tar.xz
          ./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/uninstall_test.sh
      - run: bash deploy/e2e_release_test.sh
+8 −4
Changes for deploy/bootstrap_test.sh: 8 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -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)"
expect "a ref outside the registry is refused with a warning" "WARN: not mirroring" "$out"
case "$out" in
  *"DOCKER push"*) echo "FAIL: a non-registry ref must not be pushed"; fails=$((fails + 1)) ;;
esac
# The push runs with the platform login, `docker --config <dir> push`, so any docker line
# with a push in it counts.
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)"
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"
else
  echo "$fails FAILED"
  exit 1
fi
exit "$fails"
+1 −1
Changes for deploy/e2e_check.sh: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -240,5 +240,5 @@ if [ "$fails" -eq 0 ]; then
  echo "ALL PASS (${phase})"
else
  echo "${fails} FAILED (${phase})"
  exit 1
fi
exit "$fails"
+1 −1
Changes for deploy/e2e_release.sh: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -109,4 +109,4 @@ case "${1:-}" in
    exit 2
    ;;
esac
exit "$fails"
[ "$fails" -eq 0 ] || exit 1
+1 −2
Changes for deploy/e2e_release_test.sh: 1 added line, 2 removed lines.
Original line number Diff line number Diff line
@@ -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")"

echo
if [ "$fails" -eq 0 ]; then echo "ALL PASS"; else echo "${fails} FAILED"; fi
exit "$fails"
if [ "$fails" -eq 0 ]; then echo "ALL PASS"; else echo "${fails} FAILED"; exit 1; fi
Loading