diff --git a/starship/charts/devnet/scripts/default/build-chain.sh b/starship/charts/devnet/scripts/default/build-chain.sh index a6646c11a..7b3996cc0 100644 --- a/starship/charts/devnet/scripts/default/build-chain.sh +++ b/starship/charts/devnet/scripts/default/build-chain.sh @@ -8,16 +8,28 @@ echo "Fetching code from tag" mkdir -p /tmp/chains/$CHAIN_NAME cd /tmp/chains/$CHAIN_NAME -if [[ $CODE_TAG = v* ]]; then - echo "Trying to fetch code from tag" +if [[ $CODE_TAG =~ ^[0-9a-fA-F]{40}$ ]]; then + echo "Trying to fetch code from commit hash" + curl -LO $CODE_REPO/archive/$CODE_TAG.zip + unzip $CODE_TAG.zip + code_dir=${CODE_REPO##*/}-${CODE_TAG} +elif [[ $CODE_TAG = v* ]]; then + echo "Trying to fetch code from tag with 'v' prefix" curl -LO $CODE_REPO/archive/refs/tags/$CODE_TAG.zip unzip $CODE_TAG.zip code_dir=${CODE_REPO##*/}-${CODE_TAG#"v"} else - echo "Trying to fetch code from branch" - curl -LO $CODE_REPO/archive/refs/heads/$CODE_TAG.zip - unzip $(echo $CODE_TAG | rev | cut -d "/" -f 1 | rev).zip - code_dir=${CODE_REPO##*/}-${CODE_TAG/\//-} + echo "Trying to fetch code from tag or branch" + if curl -fsLO $CODE_REPO/archive/refs/tags/$CODE_TAG.zip; then + unzip $CODE_TAG.zip + code_dir=${CODE_REPO##*/}-$CODE_TAG + elif curl -fsLO $CODE_REPO/archive/refs/heads/$CODE_TAG.zip; then + unzip $(echo $CODE_TAG | rev | cut -d "/" -f 1 | rev).zip + code_dir=${CODE_REPO##*/}-${CODE_TAG/\//-} + else + echo "Tag or branch '$CODE_TAG' not found" + exit 1 + fi fi echo "Fetch wasmvm if needed"