Bubble proxy service
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 rivejä
3.3 KiB

  1. #!/bin/bash
  2. if [[ -z "${JOB_NAME}" ]] ; then
  3. echo "No JOB_NAME env var found"
  4. fi
  5. THISDIR=$(cd $(dirname ${0}) && pwd)
  6. function die {
  7. echo 1>&2 "${1}"
  8. exit 1
  9. }
  10. function platform_dist_zip {
  11. BUILD_DIR="${1}"
  12. PLIST_FILE="com.bubble-vpn.flexrouter.plist"
  13. case "$(uname -a | awk '{print $1}')" in
  14. Darwin*)
  15. cp ${THISDIR}/macos/${PLIST_FILE} ${BUILD_DIR} || die "Error copying macos files to BUILD_DIR: ${BUILD_DIR}"
  16. ;;
  17. esac
  18. }
  19. function platform_dist_files {
  20. BUBBLE_SHA="${1}"
  21. FLEX_DIST_DIR="${2}"
  22. case "$(uname -a | awk '{print $1}')" in
  23. Darwin*)
  24. cat ${THISDIR}/macos/install.sh \
  25. | sed -e "s/@@FR_DIST_VERSION@@/${BUBBLE_VERSION}/g" \
  26. | sed -e "s/@@FR_DIST_SHA@@/${BUBBLE_SHA}/g" \
  27. > ${FLEX_DIST_DIR}/install.sh || die "Error creating macos install.sh"
  28. cp ${THISDIR}/macos/uninstall.sh ${FLEX_DIST_DIR}/uninstall.sh || die "Error copying macos uninstall.sh"
  29. ;;
  30. esac
  31. }
  32. MAKE_SYMLINKS=0
  33. case "$(uname -a | awk '{print $1}')" in
  34. Linux*)
  35. if [[ -z "${BUBBLE_DIST_HOME}" ]] ; then
  36. BUBBLE_DIST_HOME=${1:?no BUBBLE_DIST_HOME provided}
  37. MAKE_SYMLINKS=1
  38. SHA_CMD="sha256sum"
  39. fi
  40. ;;
  41. Darwin*)
  42. BUBBLE_DIST_HOME=${THISDIR}/dist
  43. rm -rf ${BUBBLE_DIST_HOME}/*
  44. SHA_CMD="shasum -a 256"
  45. ;;
  46. CYGWIN*)
  47. export PATH=${PATH}:/cygdrive/c/cygwin64/bin
  48. BUBBLE_DIST_HOME=${THISDIR}/dist
  49. rm -rf ${BUBBLE_DIST_HOME}/*
  50. SHA_CMD="sha256sum"
  51. ;;
  52. esac
  53. IS_DEV=0
  54. if [[ -z ${BUILD_NUMBER} ]] ; then
  55. BUILD_NUMBER="dev"
  56. IS_DEV=1
  57. fi
  58. BASE_VERSION="$(cat ${THISDIR}/Cargo.toml | grep -m 1 version | awk -F '"' '{print $2}')"
  59. if [[ -z ${BASE_VERSION} ]] ; then
  60. die "No version found in Cargo.toml"
  61. fi
  62. BUBBLE_VERSION=${BASE_VERSION}.${BUILD_NUMBER}
  63. FLEX_DIST_TOP=${BUBBLE_DIST_HOME}/releases/bubble-flexrouter/${JOB_NAME}
  64. FLEX_BINARY=$(find ${THISDIR}/target/release -type f -name "bubble-flexrouter*" | grep -v "bubble-flexrouter.d" | head -1)
  65. if [[ -z "${FLEX_BINARY}" ]] ; then
  66. die "No binary found in ${THISDIR}/target/release"
  67. fi
  68. FLEX_DIST=${FLEX_DIST_TOP}/${BUBBLE_VERSION}/bubble-flexrouter.zip
  69. FLEX_DIST_DIR="$(dirname ${FLEX_DIST})"
  70. if [[ ! -d "${FLEX_DIST_DIR}" ]] ; then
  71. mkdir -p ${FLEX_DIST_DIR} || die "Error creating FLEX_DIST_DIR: ${FLEX_DIST_DIR}"
  72. fi
  73. BUILD_DIR=${THISDIR}/build/bubble-flexrouter
  74. cd ${THISDIR} && \
  75. mkdir -p ${BUILD_DIR} && \
  76. cp ${FLEX_BINARY} ${BUILD_DIR} && \
  77. cp README-release.md ${BUILD_DIR}/README.md && \
  78. cp flex_init.sh ${BUILD_DIR} && \
  79. cp flex_register.sh ${BUILD_DIR} && \
  80. platform_dist_zip ${BUILD_DIR} && \
  81. echo "Building zip: ${FLEX_DIST}" && \
  82. cd build && zip -D -X -r ${FLEX_DIST} bubble-flexrouter || die "Error building bubble-flexrouter dist zip file"
  83. cat ${FLEX_DIST} | ${SHA_CMD} | cut -f1 -d' ' | tr -d '\n' > ${FLEX_DIST}.sha256 || die "Error calculating SHA for bubble-flexrouter dist zip file"
  84. platform_dist_files "$(cat ${FLEX_DIST}.sha256)" ${FLEX_DIST_DIR}
  85. if [[ ${MAKE_SYMLINKS} -eq 1 ]] ; then
  86. if [[ ${IS_DEV} -eq 0 ]] ; then
  87. ln -s ${FLEX_DIST} ${FLEX_DIST_DIR}/bubble-flexrouter.zip || die "Error creating bubble-flexrouter latest symlink"
  88. cd ${FLEX_DIST_TOP} && rm -f latest && ln -sf ${BUBBLE_VERSION} latest || die "Error creating bubble-flexrouter latest dir symlink"
  89. echo "${BUBBLE_VERSION}" > latest.txt || die "Error creating bubble-flexrouter latest.txt file"
  90. fi
  91. fi