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.

release-sdk.sh 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/bin/bash
  2. set -e -u
  3. THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd)
  4. DEFAULT_MVN_REPO="${THIS_DIR}/../../../jitsi-maven-repository/releases"
  5. THE_MVN_REPO=${MVN_REPO:-${1:-$DEFAULT_MVN_REPO}}
  6. MVN_HTTP=0
  7. DEFAULT_SDK_VERSION=$(grep sdkVersion ${THIS_DIR}/../gradle.properties | cut -d"=" -f2)
  8. SDK_VERSION=${OVERRIDE_SDK_VERSION:-${DEFAULT_SDK_VERSION}}
  9. RN_VERSION=$(jq -r '.version' ${THIS_DIR}/../../node_modules/react-native/package.json)
  10. JSC_VERSION="r"$(jq -r '.dependencies."jsc-android"' ${THIS_DIR}/../../node_modules/react-native/package.json | cut -d . -f 1 | cut -c 2-)
  11. DO_GIT_TAG=${GIT_TAG:-0}
  12. if [[ $THE_MVN_REPO == http* ]]; then
  13. MVN_HTTP=1
  14. else
  15. MVN_REPO_PATH=$(realpath $THE_MVN_REPO)
  16. THE_MVN_REPO="file:${MVN_REPO_PATH}"
  17. fi
  18. export MVN_REPO=$THE_MVN_REPO
  19. echo "Releasing Jitsi Meet SDK ${SDK_VERSION}"
  20. echo "Using ${MVN_REPO} as the Maven repo"
  21. if [[ $MVN_HTTP == 1 ]]; then
  22. # Push React Native
  23. echo "Pushing React Native ${RN_VERSION} to the Maven repo"
  24. pushd ${THIS_DIR}/../../node_modules/react-native/android/com/facebook/react/react-native/${RN_VERSION}
  25. cat react-native-${RN_VERSION}.pom \
  26. | sed "s#<packaging>pom</packaging>#<packaging>aar</packaging>#" \
  27. | sed "/<optional>/d" \
  28. > react-native-${RN_VERSION}-fixed.pom
  29. mvn \
  30. deploy:deploy-file \
  31. -Durl=${MVN_REPO} \
  32. -DrepositoryId=${MVN_REPO_ID} \
  33. -Dfile=react-native-${RN_VERSION}-release.aar \
  34. -Dpackaging=aar \
  35. -DgeneratePom=false \
  36. -DpomFile=react-native-${RN_VERSION}-fixed.pom || true
  37. popd
  38. # Push JSC
  39. echo "Pushing JSC ${JSC_VERSION} to the Maven repo"
  40. pushd ${THIS_DIR}/../../node_modules/jsc-android/dist/org/webkit/android-jsc/${JSC_VERSION}
  41. mvn \
  42. deploy:deploy-file \
  43. -Durl=${MVN_REPO} \
  44. -DrepositoryId=${MVN_REPO_ID} \
  45. -Dfile=android-jsc-${JSC_VERSION}.aar \
  46. -Dpackaging=aar \
  47. -DgeneratePom=false \
  48. -DpomFile=android-jsc-${JSC_VERSION}.pom || true
  49. popd
  50. else
  51. # Push React Native, if necessary
  52. if [[ ! -d ${MVN_REPO}/com/facebook/react/react-native/${RN_VERSION} ]]; then
  53. echo "Pushing React Native ${RN_VERSION} to the Maven repo"
  54. pushd ${THIS_DIR}/../../node_modules/react-native/android/com/facebook/react/react-native/${RN_VERSION}
  55. cat react-native-${RN_VERSION}.pom \
  56. | sed "s#<packaging>pom</packaging>#<packaging>aar</packaging>#" \
  57. | sed "/<optional>/d" \
  58. > react-native-${RN_VERSION}-fixed.pom
  59. mvn \
  60. deploy:deploy-file \
  61. -Durl=${MVN_REPO} \
  62. -Dfile=react-native-${RN_VERSION}-release.aar \
  63. -Dpackaging=aar \
  64. -DgeneratePom=false \
  65. -DpomFile=react-native-${RN_VERSION}-fixed.pom
  66. popd
  67. fi
  68. # Push JSC, if necessary
  69. if [[ ! -d ${MVN_REPO}/org/webkit/android-jsc/${JSC_VERSION} ]]; then
  70. echo "Pushing JSC ${JSC_VERSION} to the Maven repo"
  71. pushd ${THIS_DIR}/../../node_modules/jsc-android/dist/org/webkit/android-jsc/${JSC_VERSION}
  72. mvn \
  73. deploy:deploy-file \
  74. -Durl=${MVN_REPO} \
  75. -Dfile=android-jsc-${JSC_VERSION}.aar \
  76. -Dpackaging=aar \
  77. -DgeneratePom=false \
  78. -DpomFile=android-jsc-${JSC_VERSION}.pom
  79. popd
  80. fi
  81. # Check if an SDK with that same version has already been released
  82. if [[ -d ${MVN_REPO}/org/jitsi/react/jitsi-meet-sdk/${SDK_VERSION} ]]; then
  83. echo "There is already a release with that version in the Maven repo!"
  84. exit 1
  85. fi
  86. fi
  87. # Now build and publish the Jitsi Meet SDK and its dependencies
  88. echo "Building and publishing the Jitsi Meet SDK"
  89. pushd ${THIS_DIR}/../
  90. ./gradlew clean
  91. ./gradlew assembleRelease
  92. ./gradlew publish
  93. popd
  94. if [[ $DO_GIT_TAG == 1 ]]; then
  95. # The artifacts are now on the Maven repo, commit them
  96. pushd ${MVN_REPO_PATH}
  97. git add -A .
  98. git commit -m "Jitsi Meet SDK + dependencies: ${SDK_VERSION}"
  99. popd
  100. # Tag the release
  101. git tag android-sdk-${SDK_VERSION}
  102. fi
  103. # Done!
  104. echo "Finished! Don't forget to push the tag and the Maven repo artifacts."