Fix shellcheck issue on release.sh
This commit is contained in:
committed by
Benoit Marty
parent
6bec767808
commit
dc5aae831f
@@ -68,7 +68,7 @@ buildToolsVersion="35.0.0"
|
||||
buildToolsPath="${androidHome}/build-tools/${buildToolsVersion}"
|
||||
|
||||
if [[ ! -d ${buildToolsPath} ]]; then
|
||||
printf "Fatal: ${buildToolsPath} folder not found, ensure that you have installed the SDK version ${buildToolsVersion}.\n"
|
||||
printf "Fatal: %s folder not found, ensure that you have installed the SDK version %s.\n" "${buildToolsPath}" "${buildToolsVersion}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -100,7 +100,7 @@ versionYearCandidate=$(date +%y)
|
||||
currentVersionMonth=$(grep "val versionMonth" ${versionsFile} | cut -d " " -f6)
|
||||
# Get current month on 2 digits
|
||||
versionMonthCandidate=$(date +%m)
|
||||
versionMonthCandidateNoLeadingZero=$(echo ${versionMonthCandidate} | sed 's/^0//')
|
||||
versionMonthCandidateNoLeadingZero=${versionMonthCandidate/#0/}
|
||||
currentVersionReleaseNumber=$(grep "val versionReleaseNumber" ${versionsFile} | cut -d " " -f6)
|
||||
# if the current month is the same as the current version, we increment the release number, else we reset it to 0
|
||||
if [[ ${currentVersionMonth} -eq ${versionMonthCandidateNoLeadingZero} ]]; then
|
||||
@@ -110,17 +110,17 @@ else
|
||||
fi
|
||||
versionCandidate="${versionYearCandidate}.${versionMonthCandidate}.${versionReleaseNumberCandidate}"
|
||||
|
||||
read -p "Please enter the release version (example: ${versionCandidate}). Format must be 'YY.MM.x' or 'YY.MM.xy'. Just press enter if ${versionCandidate} is correct. " version
|
||||
read -r -p "Please enter the release version (example: ${versionCandidate}). Format must be 'YY.MM.x' or 'YY.MM.xy'. Just press enter if ${versionCandidate} is correct. " version
|
||||
version=${version:-${versionCandidate}}
|
||||
|
||||
# extract year, month and release number for future use
|
||||
versionYear=$(echo "${version}" | cut -d "." -f1)
|
||||
versionMonth=$(echo "${version}" | cut -d "." -f2)
|
||||
versionMonthNoLeadingZero=$(echo ${versionMonth} | sed 's/^0//')
|
||||
versionMonthNoLeadingZero=${versionMonth/#0/}
|
||||
versionReleaseNumber=$(echo "${version}" | cut -d "." -f3)
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "Starting the release ${version}\n"
|
||||
printf "Starting the release %s\n" "${version}"
|
||||
git flow release start "${version}"
|
||||
|
||||
# Note: in case the release is already started and the script is started again, checkout the release branch again.
|
||||
@@ -147,7 +147,7 @@ fastlaneFile="20${versionYear}${versionMonth}${versionReleaseNumber2Digits}0.txt
|
||||
fastlanePathFile="./fastlane/metadata/android/en-US/changelogs/${fastlaneFile}"
|
||||
printf "Main changes in this version: TODO.\nFull changelog: https://github.com/element-hq/element-x-android/releases" > "${fastlanePathFile}"
|
||||
|
||||
read -p "I have created the file ${fastlanePathFile}, please edit it and press enter to continue. "
|
||||
read -r -p "I have created the file ${fastlanePathFile}, please edit it and press enter to continue. "
|
||||
git add "${fastlanePathFile}"
|
||||
git commit -a -m "Adding fastlane file for version ${version}"
|
||||
|
||||
@@ -156,11 +156,11 @@ printf "OK, finishing the release...\n"
|
||||
git flow release finish "${version}"
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
read -p "Done, push the branch 'main' and the new tag (yes/no) default to yes? " doPush
|
||||
read -r -p "Done, push the branch 'main' and the new tag (yes/no) default to yes? " doPush
|
||||
doPush=${doPush:-yes}
|
||||
|
||||
if [ "${doPush}" == "yes" ]; then
|
||||
printf "Pushing branch 'main' and tag 'v${version}'...\n"
|
||||
printf "Pushing branch 'main' and tag 'v%s'...\n" "${version}"
|
||||
git push origin main
|
||||
git push origin "v${version}"
|
||||
else
|
||||
@@ -173,7 +173,7 @@ git checkout develop
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "The GitHub action https://github.com/element-hq/element-x-android/actions/workflows/release.yml?query=branch%%3Amain should have start a new run.\n"
|
||||
read -p "Please enter the url of the run, no need to wait for it to complete (example: https://github.com/element-hq/element-x-android/actions/runs/9065756777): " runUrl
|
||||
read -r -p "Please enter the url of the run, no need to wait for it to complete (example: https://github.com/element-hq/element-x-android/actions/runs/9065756777): " runUrl
|
||||
|
||||
targetPath="./tmp/Element/${version}"
|
||||
|
||||
@@ -190,7 +190,7 @@ while [[ $ret -ne 0 ]]; do
|
||||
|
||||
ret=$?
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
read -p "Error while downloading the artifacts. You may want to fix the issue and retry. Retry (yes/no) default to yes? " doRetry
|
||||
read -r -p "Error while downloading the artifacts. You may want to fix the issue and retry. Retry (yes/no) default to yes? " doRetry
|
||||
doRetry=${doRetry:-yes}
|
||||
if [ "${doRetry}" == "no" ]; then
|
||||
exit 1
|
||||
@@ -225,7 +225,7 @@ cp "${fdroidTargetPath}"/app-fdroid-arm64-v8a-release.apk \
|
||||
--ks-pass pass:"${keyStorePassword}" \
|
||||
--ks-key-alias elementx \
|
||||
--key-pass pass:"${keyPassword}" \
|
||||
--min-sdk-version ${minSdkVersion} \
|
||||
--min-sdk-version "${minSdkVersion}" \
|
||||
"${fdroidTargetPath}"/app-fdroid-arm64-v8a-release-signed.apk
|
||||
|
||||
cp "${fdroidTargetPath}"/app-fdroid-armeabi-v7a-release.apk \
|
||||
@@ -237,7 +237,7 @@ cp "${fdroidTargetPath}"/app-fdroid-armeabi-v7a-release.apk \
|
||||
--ks-pass pass:"${keyStorePassword}" \
|
||||
--ks-key-alias elementx \
|
||||
--key-pass pass:"${keyPassword}" \
|
||||
--min-sdk-version ${minSdkVersion} \
|
||||
--min-sdk-version "${minSdkVersion}" \
|
||||
"${fdroidTargetPath}"/app-fdroid-armeabi-v7a-release-signed.apk
|
||||
|
||||
cp "${fdroidTargetPath}"/app-fdroid-x86-release.apk \
|
||||
@@ -249,7 +249,7 @@ cp "${fdroidTargetPath}"/app-fdroid-x86-release.apk \
|
||||
--ks-pass pass:"${keyStorePassword}" \
|
||||
--ks-key-alias elementx \
|
||||
--key-pass pass:"${keyPassword}" \
|
||||
--min-sdk-version ${minSdkVersion} \
|
||||
--min-sdk-version "${minSdkVersion}" \
|
||||
"${fdroidTargetPath}"/app-fdroid-x86-release-signed.apk
|
||||
|
||||
cp "${fdroidTargetPath}"/app-fdroid-x86_64-release.apk \
|
||||
@@ -261,7 +261,7 @@ cp "${fdroidTargetPath}"/app-fdroid-x86_64-release.apk \
|
||||
--ks-pass pass:"${keyStorePassword}" \
|
||||
--ks-key-alias elementx \
|
||||
--key-pass pass:"${keyPassword}" \
|
||||
--min-sdk-version ${minSdkVersion} \
|
||||
--min-sdk-version "${minSdkVersion}" \
|
||||
"${fdroidTargetPath}"/app-fdroid-x86_64-release-signed.apk
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
@@ -277,10 +277,10 @@ printf "File app-fdroid-x86_64-release-signed.apk:\n"
|
||||
"${buildToolsPath}"/aapt dump badging "${fdroidTargetPath}"/app-fdroid-x86_64-release-signed.apk | grep package
|
||||
|
||||
printf "\n"
|
||||
read -p "Does it look correct? Press enter when it's done. "
|
||||
read -r -p "Does it look correct? Press enter when it's done. "
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "The APKs in ${fdroidTargetPath} have been signed!\n"
|
||||
printf "The APKs in %s have been signed!\n" "${fdroidTargetPath}"
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "Unzipping the Gplay artifact...\n"
|
||||
@@ -292,7 +292,7 @@ unsignedBundlePath="${gplayTargetPath}/app-gplay-release.aab"
|
||||
signedBundlePath="${gplayTargetPath}/app-gplay-release-signed.aab"
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "Signing file ${unsignedBundlePath} with build-tools version ${buildToolsVersion} for min SDK version ${minSdkVersion}...\n"
|
||||
printf "Signing file %s with build-tools version %s for min SDK version %s...\n" "${unsignedBundlePath}" "${buildToolsVersion}" "${minSdkVersion}"
|
||||
|
||||
cp "${unsignedBundlePath}" "${signedBundlePath}"
|
||||
|
||||
@@ -302,7 +302,7 @@ cp "${unsignedBundlePath}" "${signedBundlePath}"
|
||||
--ks-pass pass:"${keyStorePassword}" \
|
||||
--ks-key-alias elementx \
|
||||
--key-pass pass:"${keyPassword}" \
|
||||
--min-sdk-version ${minSdkVersion} \
|
||||
--min-sdk-version "${minSdkVersion}" \
|
||||
"${signedBundlePath}"
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
@@ -314,13 +314,13 @@ printf "Version name: "
|
||||
bundletool dump manifest --bundle="${signedBundlePath}" --xpath=/manifest/@android:versionName
|
||||
|
||||
printf "\n"
|
||||
read -p "Does it look correct? Press enter to continue. "
|
||||
read -r -p "Does it look correct? Press enter to continue. "
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "The file ${signedBundlePath} has been signed and can be uploaded to the PlayStore!\n"
|
||||
printf "The file %s has been signed and can be uploaded to the PlayStore!\n" "${signedBundlePath}"
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
read -p "Do you want to build the APKs from the app bundle? You need to do this step if you want to install the application to your device. (yes/no) default to no " doBuildApks
|
||||
read -r -p "Do you want to build the APKs from the app bundle? You need to do this step if you want to install the application to your device. (yes/no) default to no " doBuildApks
|
||||
doBuildApks=${doBuildApks:-no}
|
||||
|
||||
if [ "${doBuildApks}" == "yes" ]; then
|
||||
@@ -329,12 +329,12 @@ if [ "${doBuildApks}" == "yes" ]; then
|
||||
--ks=./app/signature/debug.keystore --ks-pass=pass:android --ks-key-alias=androiddebugkey --key-pass=pass:android \
|
||||
--overwrite
|
||||
|
||||
read -p "Do you want to install the application to your device? Make sure there is one (and only one!) connected device first. (yes/no) default to yes " doDeploy
|
||||
read -r -p "Do you want to install the application to your device? Make sure there is one (and only one!) connected device first. (yes/no) default to yes " doDeploy
|
||||
doDeploy=${doDeploy:-yes}
|
||||
if [ "${doDeploy}" == "yes" ]; then
|
||||
printf "Installing apk for your device...\n"
|
||||
bundletool install-apks --apks="${gplayTargetPath}"/elementx.apks
|
||||
read -p "Please run the application on your phone to check that the upgrade went well. Press enter to continue. "
|
||||
read -r -p "Please run the application on your phone to check that the upgrade went well. Press enter to continue. "
|
||||
else
|
||||
printf "APK will not be deployed!\n"
|
||||
fi
|
||||
@@ -346,14 +346,14 @@ printf "\n======================================================================
|
||||
printf "Create the open testing release on GooglePlay.\n"
|
||||
|
||||
printf "On GooglePlay console, go the the open testing section and click on \"Create new release\" button, then:\n"
|
||||
printf " - upload the file ${signedBundlePath}.\n"
|
||||
printf " - upload the file %s.\n" "${signedBundlePath}"
|
||||
printf " - copy the release note from the fastlane file.\n"
|
||||
printf " - download the universal APK, to be able to provide it to the GitHub release: click on the right arrow next to the \"App bundle\", then click on the \"Download\" tab, and download the \"Signed, universal APK\".\n"
|
||||
printf " - submit the release.\n"
|
||||
read -p "Press enter to continue. "
|
||||
read -r -p "Press enter to continue. "
|
||||
|
||||
printf "You can then go to \"Publishing overview\" and send the new release for a review by Google.\n"
|
||||
read -p "Press enter to continue. "
|
||||
read -r -p "Press enter to continue. "
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
githubCreateReleaseLink="https://github.com/element-hq/element-x-android/releases/new?tag=v${version}&title=Element%20X%20Android%20v${version}"
|
||||
@@ -362,22 +362,22 @@ printf -- "Open this link: %s\n" "${githubCreateReleaseLink}"
|
||||
printf "Then\n"
|
||||
printf " - Click on the 'Generate releases notes' button.\n"
|
||||
printf " - Optionally reorder items and fix typos.\n"
|
||||
printf " - Add the file ${signedBundlePath} to the GitHub release.\n"
|
||||
printf " - Add the file %s to the GitHub release.\n" "${signedBundlePath}"
|
||||
printf " - Add the universal APK, downloaded from the GooglePlay console to the GitHub release.\n"
|
||||
printf " - Add the 4 signed APKs for F-Droid, located at ${fdroidTargetPath} to the GitHub release.\n"
|
||||
read -p ". Press enter to continue. "
|
||||
printf " - Add the 4 signed APKs for F-Droid, located at %s to the GitHub release.\n" "${fdroidTargetPath}"
|
||||
read -r -p ". Press enter to continue. "
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "Update the project release notes:\n\n"
|
||||
|
||||
read -p "Copy the content of the release note generated by GitHub to the file CHANGES.md and press enter to commit the change. "
|
||||
read -r -p "Copy the content of the release note generated by GitHub to the file CHANGES.md and press enter to commit the change. "
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
printf "Committing...\n"
|
||||
git commit -a -m "Changelog for version ${version}"
|
||||
|
||||
printf "\n================================================================================\n"
|
||||
read -p "Done, push the branch 'develop' (yes/no) default to yes? (A rebase may be necessary in case develop got new commits) " doPush
|
||||
read -r -p "Done, push the branch 'develop' (yes/no) default to yes? (A rebase may be necessary in case develop got new commits) " doPush
|
||||
doPush=${doPush:-yes}
|
||||
|
||||
if [ "${doPush}" == "yes" ]; then
|
||||
@@ -390,12 +390,12 @@ fi
|
||||
printf "\n================================================================================\n"
|
||||
printf "Message for the Android internal room:\n\n"
|
||||
message="@room Element X Android ${version} is ready to be tested. You can get it from https://github.com/element-hq/element-x-android/releases/tag/v${version}. You can install the universal APK. If you want to install the application from the app bundle, you can follow instructions [here](https://github.com/element-hq/element-x-android/blob/develop/docs/install_from_github_release.md). Please report any feedback. Thanks!"
|
||||
printf "${message}\n\n"
|
||||
printf "%s\n\n" "${message}"
|
||||
|
||||
if [[ -z "${elementBotToken}" ]]; then
|
||||
read -p "ELEMENT_BOT_MATRIX_TOKEN is not defined in the environment. Cannot send the message for you. Please send it manually, and press enter to continue. "
|
||||
read -r -p "ELEMENT_BOT_MATRIX_TOKEN is not defined in the environment. Cannot send the message for you. Please send it manually, and press enter to continue. "
|
||||
else
|
||||
read -p "Send this message to the room (yes/no) default to yes? " doSend
|
||||
read -r -p "Send this message to the room (yes/no) default to yes? " doSend
|
||||
doSend=${doSend:-yes}
|
||||
if [ "${doSend}" == "yes" ]; then
|
||||
printf "Sending message...\n"
|
||||
|
||||
Reference in New Issue
Block a user