Make nextest-specific processing robust against crates.io failure

This commit is contained in:
Taiki Endo
2025-06-18 21:45:27 +09:00
parent 33f3e8ce54
commit 3b8778b638

30
main.sh
View File

@@ -220,20 +220,22 @@ read_manifest() {
# TODO: don't hardcode tool name and use 'immediate_yank_reflection' field in base manifest. # TODO: don't hardcode tool name and use 'immediate_yank_reflection' field in base manifest.
case "${tool}" in case "${tool}" in
cargo-nextest | nextest) cargo-nextest | nextest)
crate_info=$(retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}") crate_info=$(curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}" || true)
while true; do if [[ -n "${crate_info}" ]]; then
yanked=$(jq -r ".versions[] | select(.num == \"${exact_version}\") | .yanked" <<<"${crate_info}") while true; do
if [[ "${yanked}" != "true" ]]; then yanked=$(jq -r ".versions[] | select(.num == \"${exact_version}\") | .yanked" <<<"${crate_info}")
break if [[ "${yanked}" != "true" ]]; then
fi break
previous_stable_version=$(jq -r '.previous_stable_version' <<<"${manifest}") fi
if [[ "${previous_stable_version}" == "null" ]]; then previous_stable_version=$(jq -r '.previous_stable_version' <<<"${manifest}")
break if [[ "${previous_stable_version}" == "null" ]]; then
fi break
info "${tool}@${exact_version} is yanked; downgrade to ${previous_stable_version}" fi
exact_version="${previous_stable_version}" info "${tool}@${exact_version} is yanked; downgrade to ${previous_stable_version}"
manifest=$(jq -r ".[\"${exact_version}\"]" "${manifest_dir}/${tool}.json") exact_version="${previous_stable_version}"
done manifest=$(jq -r ".[\"${exact_version}\"]" "${manifest_dir}/${tool}.json")
done
fi
;; ;;
esac esac
fi fi