update-homebrew.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. set -euo pipefail
  3. FILENAME="${PWD}/artifacts/cloudflared-darwin-amd64.tgz"
  4. if ! VERSION="$(git describe --tags --exact-match 2>/dev/null)" ; then
  5. echo "Skipping public release for an untagged commit."
  6. echo "##teamcity[buildStatus status='SUCCESS' text='Skipped due to lack of tag']"
  7. exit 0
  8. fi
  9. if [[ ! -f "$FILENAME" ]] ; then
  10. echo "Missing $FILENAME"
  11. exit 1
  12. fi
  13. if [[ "${GITHUB_PRIVATE_KEY:-}" == "" ]] ; then
  14. echo "Missing GITHUB_PRIVATE_KEY"
  15. exit 1
  16. fi
  17. # upload to s3 bucket for use by Homebrew formula
  18. s3cmd \
  19. --acl-public --signature-v2 --access_key="$AWS_ACCESS_KEY_ID" --secret_key="$AWS_SECRET_ACCESS_KEY" --host-bucket="%(bucket)s.s3.cfdata.org" \
  20. put "$FILENAME" "s3://cftunnel-docs/dl/cloudflared-$VERSION-darwin-amd64.tgz"
  21. s3cmd \
  22. --acl-public --signature-v2 --access_key="$AWS_ACCESS_KEY_ID" --secret_key="$AWS_SECRET_ACCESS_KEY" --host-bucket="%(bucket)s.s3.cfdata.org" \
  23. cp "s3://cftunnel-docs/dl/cloudflared-$VERSION-darwin-amd64.tgz" "s3://cftunnel-docs/dl/cloudflared-stable-darwin-amd64.tgz"
  24. SHA256=$(sha256sum "$FILENAME" | cut -b1-64)
  25. # set up git (note that UserKnownHostsFile is an absolute path so we can cd wherever)
  26. mkdir -p tmp
  27. ssh-keyscan -t rsa github.com > tmp/github.txt
  28. echo "$GITHUB_PRIVATE_KEY" > tmp/private.key
  29. chmod 0400 tmp/private.key
  30. export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$PWD/tmp/github.txt -i $PWD/tmp/private.key -o IdentitiesOnly=yes"
  31. # clone Homebrew repo into tmp/homebrew-cloudflare
  32. git clone git@github.com:cloudflare/homebrew-cloudflare.git tmp/homebrew-cloudflare
  33. cd tmp/homebrew-cloudflare
  34. git checkout -f master
  35. git reset --hard origin/master
  36. # modify cloudflared.rb
  37. URL="https://packages.argotunnel.com/dl/cloudflared-$VERSION-darwin-amd64.tgz"
  38. tee cloudflared.rb <<EOF
  39. class Cloudflared < Formula
  40. desc 'Argo Tunnel'
  41. homepage 'https://developers.cloudflare.com/argo-tunnel/'
  42. url '$URL'
  43. sha256 '$SHA256'
  44. version '$VERSION'
  45. def install
  46. bin.install 'cloudflared'
  47. end
  48. end
  49. EOF
  50. # push cloudflared.rb
  51. git add cloudflared.rb
  52. git diff
  53. git config user.name "cloudflare-warp-bot"
  54. git config user.email "warp-bot@cloudflare.com"
  55. git commit -m "Release Argo Tunnel $VERSION"
  56. git push -v origin master