release.sh 990 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/bash
  2. set -e
  3. if [[ -z "${GH_CLI_TOKEN}" ]]; then
  4. echo "Will not release because no GH_CLI_TOKEN defined"
  5. exit
  6. fi
  7. echo "${GH_CLI_TOKEN}" | gh auth login --with-token
  8. if [[ $( gh release view "${MS_TAG}" 2>&1 ) =~ "release not found" ]]; then
  9. echo "Creating release '${MS_TAG}'"
  10. gh release create "${MS_TAG}"
  11. fi
  12. cd artifacts
  13. set +e
  14. for FILE in *
  15. do
  16. if [[ -f "${FILE}" ]] && [[ "${FILE}" != *.sha1 ]] && [[ "${FILE}" != *.sha256 ]]; then
  17. echo "Uploading '${FILE}'"
  18. gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
  19. if [[ $? != 0 ]]; then
  20. for (( i=0; i<10; i++ ))
  21. do
  22. sleep $(( 15 * (i + 1)))
  23. echo "RE-Uploading '${FILE}'"
  24. gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256" --clobber
  25. if [[ $? == 0 ]]; then
  26. break
  27. fi
  28. done
  29. if [[ $? != 0 ]]; then
  30. echo "'${FILE}' hasn't been uploaded!"
  31. exit 1
  32. fi
  33. fi
  34. fi
  35. done
  36. cd ..