diff --git a/ci/publish-crate.sh b/ci/publish-crate.sh index 8bcd1d87f..b285109c2 100755 --- a/ci/publish-crate.sh +++ b/ci/publish-crate.sh @@ -36,6 +36,13 @@ for Cargo_toml in $Cargo_tomls; do exit 1 } + crate_name=$(grep -m 1 '^name = ' "$Cargo_toml" | cut -f 3 -d ' ' | tr -d \") + + if [[ $(is_crate_version_uploaded "$crate_name" "$expectedCrateVersion") = True ]] ; then + echo "${crate_name} version ${expectedCrateVersion} is already on crates.io" + continue + fi + ( set -x crate=$(dirname "$Cargo_toml") @@ -45,13 +52,10 @@ for Cargo_toml in $Cargo_tomls; do ci/docker-run.sh "$rust_stable_docker_image" bash -exc "cd $crate; $cargoCommand" ) || true # <-- Don't fail. We want to be able to retry the job in cases when a publish fails halfway due to network/cloud issues - # shellcheck disable=SC2086 - crate_name=$(grep -m 1 '^name = ' $Cargo_toml | cut -f 3 -d ' ' | tr -d \") numRetries=30 for ((i = 1 ; i <= numRetries ; i++)); do echo "Attempt ${i} of ${numRetries}" - # shellcheck disable=SC2086 - if [[ $(is_crate_version_uploaded $crate_name $expectedCrateVersion) = True ]] ; then + if [[ $(is_crate_version_uploaded "$crate_name" "$expectedCrateVersion") = True ]] ; then echo "Found ${crate_name} version ${expectedCrateVersion} on crates.io" break fi