run.sh (2233B)
1 #!/bin/bash 2 3 set -ex 4 5 SHA256SUMS=SHA256SUMS.zip 6 7 function get_route() 8 { 9 local task_url=${TASKCLUSTER_ROOT_URL}/api/queue/v1/task/${TASK_ID} 10 local payload 11 payload=$(curl -sSL "${task_url}") 12 13 local route 14 route=$(echo "${payload}" | jq -r '.routes[] | select(contains("latest")) | select(contains("pushdate") | not) ' | sed -e 's/^index\.//') 15 echo "${route}" 16 } 17 18 function get_sha256sum_url() 19 { 20 local route 21 route=$(get_route) 22 local sha256sums_url=${TASKCLUSTER_ROOT_URL}/api/index/v1/task/${route}/artifacts/public/build/${SHA256SUMS} 23 echo "${sha256sums_url}" 24 } 25 26 function has_sha256sums_on_index() 27 { 28 local url 29 url=$(get_sha256sum_url) 30 curl -sSL --head --fail -o /dev/null "${url}" 31 } 32 33 function download_verify_extract_sha256sums() 34 { 35 local url=$1 36 37 if [ ! -f "/builds/worker/SHA256SUMS.txt" ]; then 38 echo "Missing checksums, aborting." 39 exit 1 40 fi 41 42 curl -sSL "${url}" -o ${SHA256SUMS} 43 44 # We verify SHA256SUMS when we bootstrap and thus download from GitHub 45 # The one downloaded from TaskCluster will have been updated by previous tasks 46 if [ -n "${BOOTSTRAP_SHA256}" ]; then 47 echo "BOOTSTRAP_SHA256 was set, ensuring consistent set of SHA256SUMS" 48 local sha_check 49 sha256sum --quiet --status -c <(grep "${DISTRO}/" /builds/worker/SHA256SUMS.txt | sed -e "s/${DISTRO}\///") 50 sha_check=$? 51 if [ ${sha_check} -ne 0 ]; then 52 echo "Checksum verification failed, aborting." 53 exit 1 54 fi 55 fi 56 57 unzip ${SHA256SUMS} && rm ${SHA256SUMS} 58 } 59 60 DISTRO=$1 61 62 sha256=https://mozilla.github.io/symbol-scrapers/${DISTRO}/${SHA256SUMS} 63 if [ -z "${BOOTSTRAP_SHA256}" ]; then 64 if has_sha256sums_on_index; then 65 sha256=$(get_sha256sum_url) 66 fi 67 fi 68 69 mkdir -p /builds/worker/artifacts/ 70 71 pushd "${MOZ_FETCHES_DIR}/symbol-scrapers/${DISTRO}" 72 download_verify_extract_sha256sums "${sha256}" 73 PATH="${MOZ_FETCHES_DIR}/7zz/:${PATH}" DUMP_SYMS=${MOZ_FETCHES_DIR}/dump_syms/dump_syms /bin/bash script.sh 74 zip -r9 /builds/worker/artifacts/${SHA256SUMS} SHA256SUMS 75 cp wget*.log /builds/worker/artifacts/ || true 76 popd 77 78 zip_files=$(find /builds/worker/artifacts -name "target.crashreporter-symbols.*.zip") 79 80 if [ -z "${zip_files}" ]; then 81 echo "No symbols zip produced, upload task will fail" 82 fi