Bubble proxy service
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

64 Zeilen
2.4 KiB

  1. #!/bin/bash
  2. FLEX_PROJECT=${1:?no project name specified}
  3. JENKINS_HOME="$(cd ~jenkins && pwd)"
  4. function die () {
  5. echo 1>&2 "${1}"
  6. exit 1
  7. }
  8. IS_MACOS=0
  9. case "${FLEX_PROJECT}" in
  10. *macos*)
  11. IS_MACOS=1
  12. ;;
  13. esac
  14. LATEST_BUILD="$(find ${JENKINS_HOME}/jobs/${FLEX_PROJECT}/builds -maxdepth 1 -mindepth 1 -type d | xargs -n 1 basename | sort -nr | head -1)"
  15. if [[ -z "${LATEST_BUILD}" ]] ; then
  16. die "No latest build found"
  17. fi
  18. LATEST_VERSION="$(find ${JENKINS_HOME}/jobs/${FLEX_PROJECT}/builds/${LATEST_BUILD}/archive/dist/releases/bubble-flexrouter/${FLEX_PROJECT} -maxdepth 1 -mindepth 1 -type d | sort -nr | head -1 | xargs -n 1 basename)"
  19. if [[ -z "${LATEST_VERSION}" ]] ; then
  20. die "No latest version found"
  21. fi
  22. LATEST_ZIP="$(find ${JENKINS_HOME}/jobs/${FLEX_PROJECT}/builds/${LATEST_BUILD}/archive/dist/releases/bubble-flexrouter/${FLEX_PROJECT}/${LATEST_VERSION} -maxdepth 1 -mindepth 1 -type f -name "bubble-flexrouter.zip" | head -1)"
  23. if [[ -z "${LATEST_ZIP}" ]] ; then
  24. die "No latest zip found"
  25. fi
  26. if [[ ${IS_MACOS} -eq 1 ]] ; then
  27. LATEST_INSTALL_SH="${JENKINS_HOME}/jobs/${FLEX_PROJECT}/builds/${LATEST_BUILD}/archive/install.sh"
  28. if [[ ! -s "${LATEST_INSTALL_SH}" ]] ; then
  29. die "No install.sh found"
  30. fi
  31. LATEST_UNINSTALL_SH="${JENKINS_HOME}/jobs/${FLEX_PROJECT}/builds/${LATEST_BUILD}/archive/uninstall.sh"
  32. if [[ ! -s "${LATEST_UNINSTALL_SH}" ]] ; then
  33. die "No uninstall.sh found"
  34. fi
  35. fi
  36. RELEASE_TOP="${JENKINS_HOME}/public/public/releases/bubble-flexrouter/${FLEX_PROJECT}/"
  37. RELEASE_DIR="${RELEASE_TOP}/${LATEST_VERSION}"
  38. mkdir -p ${RELEASE_DIR} || die "Error creating release dir: ${RELEASE_DIR}"
  39. echo "Created release dir: ${RELEASE_DIR}"
  40. cp ${LATEST_ZIP} ${RELEASE_DIR} || die "Error copying ${LATEST_ZIP} -> ${RELEASE_DIR}"
  41. cp ${LATEST_ZIP}.sha256 ${RELEASE_DIR} || die "Error copying ${LATEST_ZIP}.sha256 -> ${RELEASE_DIR}"
  42. if [[ ${IS_MACOS} -eq 1 ]] ; then
  43. cp ${LATEST_INSTALL_SH} ${RELEASE_DIR} || die "Error copying ${LATEST_INSTALL_SH} -> ${RELEASE_DIR}"
  44. cp ${LATEST_UNINSTALL_SH} ${RELEASE_DIR} || die "Error copying ${LATEST_UNINSTALL_SH} -> ${RELEASE_DIR}"
  45. fi
  46. echo "Published release: ${RELEASE_DIR}/$(basename ${LATEST_ZIP})"
  47. echo ${LATEST_VERSION} > ${RELEASE_TOP}/latest.txt
  48. echo "Marked as latest release: ${RELEASE_TOP}/latest.txt == $(cat ${RELEASE_TOP}/latest.txt)"
  49. cd ${RELEASE_TOP} && rm -f latest && ln -s $(basename ${RELEASE_DIR}) latest
  50. echo "Marked as latest release: ${RELEASE_TOP}/latest -> $(basename ${RELEASE_DIR})"