update-rpm.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/env bash
  2. RELEASE_TYPE="${1:-}"
  3. GPG_PASS="${2:-}"
  4. RELEASE_TAG="${3:-}"
  5. REPO="rpm"
  6. if [ -z "$RELEASE_TYPE" -o -z "$GPG_PASS" ]; then
  7. echo "Both RELEASE_TYPE (arg 1) and GPG_PASS (arg 2) has to be set"
  8. exit 1
  9. fi
  10. if [[ "$RELEASE_TYPE" != "oss" && "$RELEASE_TYPE" != "enterprise" ]]; then
  11. echo "RELEASE_TYPE (arg 1) must be either oss or enterprise."
  12. exit 1
  13. fi
  14. if echo "$RELEASE_TAG" | grep -q "beta"; then
  15. REPO="rpm-beta"
  16. fi
  17. set -e
  18. # Setup environment
  19. BUCKET="gs://grafana-repo/$RELEASE_TYPE/$REPO"
  20. mkdir -p /rpm-repo
  21. # Download the database
  22. gsutil -m rsync -r "$BUCKET" /rpm-repo
  23. # Add the new release to the repo
  24. cp ./dist/*.rpm /rpm-repo
  25. rm /rpm-repo/grafana-latest-1*.rpm || true
  26. cd /rpm-repo
  27. createrepo .
  28. # Setup signing and sign the repo
  29. echo "allow-loopback-pinentry" > ~/.gnupg/gpg-agent.conf
  30. echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf
  31. rm /rpm-repo/repodata/repomd.xml.asc || true
  32. pkill gpg-agent || true
  33. ./scripts/build/update_repo/sign-rpm-repo.sh "$GPG_PASS"
  34. # Update the repo and db on gcp
  35. gsutil -m rsync -r -d /rpm-repo "$BUCKET"
  36. # usage:
  37. # [grafana]
  38. # name=grafana
  39. # baseurl=https://grafana-repo.storage.googleapis.com/oss/rpm
  40. # repo_gpgcheck=1
  41. # enabled=1
  42. # gpgcheck=1
  43. # gpgkey=https://grafana-repo.storage.googleapis.com/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
  44. # sslverify=1
  45. # sslcacert=/etc/pki/tls/certs/ca-bundle.crt# later: