release_deb.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env bash
  2. ### Bash Environment Setup
  3. # http://redsymbol.net/articles/unofficial-bash-strict-mode/
  4. # https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
  5. # set -o xtrace
  6. set -o errexit
  7. set -o errtrace
  8. set -o nounset
  9. set -o pipefail
  10. IFS=$'\n'
  11. CURRENT_PLAFORM="$(uname)"
  12. REQUIRED_PLATFORM="Linux"
  13. if [[ "$CURRENT_PLAFORM" != "$REQUIRED_PLATFORM" ]]; then
  14. echo "[!] Skipping the Debian package build on $CURRENT_PLAFORM (it can only be run on $REQUIRED_PLATFORM)."
  15. exit 0
  16. fi
  17. REPO_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && cd .. && pwd )"
  18. VERSION="$(jq -r '.version' < "$REPO_DIR/package.json")"
  19. DEBIAN_VERSION="${DEBIAN_VERSION:-1}"
  20. cd "$REPO_DIR"
  21. echo "[+] Loading PGP keys from env vars and filesystem..."
  22. # https://github.com/ArchiveBox/debian-archivebox/settings/secrets/actions
  23. PGP_KEY_ID="${PGP_KEY_ID:-BC2D21B0D84E16C437300B8652423FBED1586F45}"
  24. [[ "${PGP_PUBLIC_KEY:-}" ]] && echo "$PGP_PUBLIC_KEY" > /tmp/archivebox_gpg.key.pub
  25. [[ "${PGP_PRIVATE_KEY:-}" ]] && echo "$PGP_PRIVATE_KEY" > /tmp/archivebox_gpg.key
  26. gpg --import /tmp/archivebox_gpg.key.pub || true
  27. gpg --import --allow-secret-key-import /tmp/archivebox_gpg.key || true
  28. echo "$PGP_KEY_ID:6:" | gpg --import-ownertrust || true
  29. echo "[*] Signing build and changelog with PGP..."
  30. debsign --re-sign -k "$PGP_KEY_ID" "deb_dist/archivebox_${VERSION}-${DEBIAN_VERSION}_source.changes"
  31. # make sure you have this in ~/.dput.cf:
  32. # [archivebox-ppa]
  33. # fqdn: ppa.launchpad.net
  34. # method: ftp
  35. # incoming: ~archivebox/ubuntu/archivebox/
  36. # login: anonymous
  37. # allow_unsigned_uploads: 0
  38. echo "[^] Uploading to launchpad.net"
  39. dput -f archivebox "deb_dist/archivebox_${VERSION}-${DEBIAN_VERSION}_source.changes"