install_gh.sh 731 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env bash
  2. set -ex
  3. GH_ARCH="amd64"
  4. for i in {1..5}; do
  5. TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )
  6. if [[ $? == 0 && "${TAG}" != "null" ]]; then
  7. break
  8. fi
  9. if [[ $i == 3 ]]; then
  10. echo "GH install failed too many times" >&2
  11. exit 1
  12. fi
  13. echo "GH install failed $i, trying again..."
  14. done
  15. VERSION="${TAG#v}"
  16. curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
  17. tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
  18. cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
  19. gh --version