From b01990d480e1d0d27598cd4fc8aa1e41cab43c18 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Fri, 12 Jul 2019 21:36:01 -0700 Subject: [PATCH] Avoid trying to republish crates already on crates.io --- ci/publish-crate.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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