Skip to content
Snippets Groups Projects
Commit 412446a8 authored by Benoit Lavenier's avatar Benoit Lavenier
Browse files

[fix] Fix release scripts to enable android sources project update

parent ce8a0cb6
Branches
No related tags found
No related merge requests found
[submodule "dist/desktop"]
path = dist/desktop
url = git@git.duniter.org:clients/cesium-grp/cesium-desktop.git
[submodule "platforms/android"]
path = platforms/android
[submodule "dist/android/sources"]
path = dist/android/sources
url = git@git.duniter.org:clients/cesium-grp/cesium-android.git
......@@ -67,7 +67,7 @@
"port": 443
},
{
"host": "g1v1.p2P.legal",
"host": "g1v1.p2p.legal",
"port": 443
}
],
......
Subproject commit bd92e40dd32fbf30d3d3428c7b2ef469098ed66f
Subproject commit e5b6b4baad35456b9a0a39cd9f875e308fb9bad7
Subproject commit ae5f10132376fdd9789db506baa634864b89a19e
......@@ -39,7 +39,8 @@ ANDROID_OUTPUT_MIN_SDK_VERSION=22 # Used by release-android-sign.sh
ANDROID_OUTPUT_MAX_SDK_VERSION=34 # Used by release-android-sign.sh
DIST_WEB=${PROJECT_DIR}/dist/web/build
DIST_ANDROID=${PROJECT_DIR}/dist/android
DIST_ANDROID=${PROJECT_DIR}/dist/android/build # Where APK are stored
SOURCES_ANDROID=${PROJECT_DIR}/dist/android/sources # Where git cesium-android is checkout
# Addons Mozilla Web extension ID
WEB_EXT_ID=${WEB_EXT_ID:-"{6f9922f7-a054-4609-94ce-d269993246a5}"}
......
......@@ -16,9 +16,9 @@ KEYSTORE_PWD=
. ${PROJECT_DIR}/scripts/env-android.sh
[[ $? -ne 0 ]] && exit 1
APK_SIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-signed.apk
APK_SIGNED_FILE=${APK_SIGNED_FILE:-"${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-signed.apk"}
APK_UNSIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-unsigned.apk
APK_FILE_ALTERNATIVE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release.apk
APK_UNSIGNED_FILE_ALTERNATIVE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release.apk
cd ${PROJECT_DIR}
......@@ -30,11 +30,11 @@ if [[ ! -f "${KEYSTORE_FILE}" ]]; then
fi
if [[ ! -f "${APK_UNSIGNED_FILE}" ]]; then
# Check in an alternative path (e.g. Android default signed file)
if [[ ! -f "${APK_FILE_ALTERNATIVE}" ]]; then
if [[ ! -f "${APK_UNSIGNED_FILE_ALTERNATIVE}" ]]; then
echo "ERROR: Unsigned APK file not found: ${APK_UNSIGNED_FILE}"
exit 1
fi
APK_UNSIGNED_FILE=${APK_FILE_ALTERNATIVE}
APK_UNSIGNED_FILE=${APK_UNSIGNED_FILE_ALTERNATIVE}
fi
echo "--- Signing Android APK..."
......@@ -78,5 +78,4 @@ echo ""
export APK_SIGNED_FILE
echo "--- Successfully generated signed APK at: ${APK_SIGNED_FILE}"
echo ""
exit 0
......@@ -7,22 +7,58 @@ if [[ "_" == "_${PROJECT_DIR}" ]]; then
export PROJECT_DIR
fi;
### Get version to release
cd ${PROJECT_DIR}
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo " - Make sure the file 'package.json' exists and is readable."
echo " - Check version format is: x.y.z (x and y should be an integer)"
exit 1
fi
# Preparing the environment
source ${PROJECT_DIR}/scripts/env-global.sh
[[ $? -ne 0 ]] && exit 1
# Commit android project
cd ${PROJECT_DIR}/platforms/android || exit 1
git reset HEAD
# Make sure to checkout the source project
if ! test -d "${SOURCES_ANDROID}"; then
echo "-- Checkout submodules (dist/android/sources) ..."
cd "${PROJECT_DIR}"
git submodule init && git submodule sync && git submodule update --remote --merge
if ! test $? == 0; then
echo "ERROR: Unable to sync git submodule. Will not be able commit android sources !"
#exit 1
else
echo "-- Checkout submodules (dist/android/sources) [OK]"
fi
fi
if test -d "${SOURCES_ANDROID}"; then
# Revert changes in the Android sources project
cd ${SOURCES_ANDROID} || exit 1
git fetch && git reset --hard --merge HEAD
# Update sources, from platforms/android
echo "--- Copy Android sources from 'platforms/android' to '${SOURCES_ANDROID}' ..."
rsync -rlptgocq --exclude=.* --exclude=build --exclude=release-signing.* --exclude=*.keystore --delete --force "${PROJECT_DIR}/platforms/android/" "${SOURCES_ANDROID}/"
echo "--- Copy Android sources [OK] ..."
echo ""
echo "--- Git push Android sources, and tag as 'v$current'..."
cd ${SOURCES_ANDROID} || exit 1
git add -A
git commit -m "v$1"
git tag -f -a "v$1" -m "Release v$1"
git commit -a -m "v$current"
git tag -f -a "v$current" -m "Release v$current"
# Push the tag
git push -f origin "v$1"
git push -f origin "v$current"
# Push the master branch
git push -f origin
if [[ $? -ne 0 ]]; then
echo "ERROR: cannot push platform/android project ! Continue anyway..."
echo "ERROR: cannot push Android sources at '${SOURCES_ANDROID}' ! Continue anyway..."
else
echo "--- Git push Android sources, and tag [OK]"
fi
fi
......@@ -37,6 +37,19 @@ echo ""
# Sign APK file
cd ${PROJECT_DIR}/scripts
./release-android-sign.sh
[[ $? -ne 0 ]] && exit 1
cd ${PROJECT_DIR}
# Check signed APK exists
if [[ ! -f "${APK_SIGNED_FILE}" ]]; then
echo "Missing signed APK file at: ${APK_SIGNED_FILE}"
exit 1
fi
# Copy signed APK to 'dist/android/build'
echo ""
echo "--- Copying Android APK to '${DIST_ANDROID}'..."
APK_BASENAME="${PROJECT_NAME}-v${current}-android.apk"
APK_FINAL_FILE="${DIST_ANDROID}/${APK_BASENAME}"
mkdir -p ${DIST_ANDROID}
cp -f "${APK_SIGNED_FILE}" "${DIST_ANDROID}/${APK_BASENAME}"
echo "--- Copying Android APK [OK]"
echo ""
......@@ -22,7 +22,7 @@ then
fi
### Get version to release
current=$(grep -P "version\": \"\d+.\d+.\d+(-?\w*)" package.json | grep -m 1 -oP "\d+.\d+.\d+(-?\w*)")
current=$(grep -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -m 1 -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
......
......@@ -20,7 +20,7 @@ then
fi
### Get version to release
current=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[0-9]*)?" package.json | grep -m 1 -oP "\d+.\d+.\d+(-\w+[0-9]*)?")
current=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -m 1 -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
......
......@@ -20,7 +20,7 @@ then
fi
### Get version to release
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[0-9]*)?" package.json | grep -oP "\d+.\d+.\d+(-\w+[0-9]*)?")
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo " - Make sure the file 'package.json' exists and is readable."
echo " - Check version format is: x.y.z (x and y should be an integer)"
......@@ -160,18 +160,14 @@ fi
# Upload Android APK file
APK_BASENAME="${PROJECT_NAME}-v${current}-android.apk"
APK_SIGNED_FILE="${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-signed.apk"
if [[ -f "${APK_SIGNED_FILE}" ]]; then
# Copy to dist/android
mkdir -p ${DIST_ANDROID}
cp -f "${APK_SIGNED_FILE}" "${DIST_ANDROID}/${APK_BASENAME}"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_SIGNED_FILE}" "${upload_url}?name=${APK_BASENAME}")
APK_FILE="${DIST_ANDROID}/${APK_BASENAME}"
if [[ -f "${APK_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${APK_BASENAME}")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
APK_SHA256=$(sha256sum "${APK_SIGNED_FILE}" | sed 's/ /\n/gi' | head -n 1)
APK_SHA256=$(sha256sum "${APK_FILE}" | sed 's/ /\n/gi' | head -n 1)
echo " - ${browser_download_url} | SHA256 Checksum: ${APK_SHA256}"
echo "${APK_SHA256} ${APK_BASENAME}" > "${APK_SIGNED_FILE}.sha256"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${APK_SIGNED_FILE}.sha256" "${upload_url}?name=${APK_BASENAME}.sha256")
echo "${APK_SHA256} ${APK_BASENAME}" > "${APK_FILE}.sha256"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${APK_FILE}.sha256" "${upload_url}?name=${APK_BASENAME}.sha256")
else
echo "- ERROR: Android release (APK) not found! Skipping."
missing_file=true
......
......@@ -18,7 +18,7 @@ then
fi
### Get current version (package.json)
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[0-9]*)?" package.json | grep -oP "\d+.\d+.\d+(-\w+[0-9]*)?")
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
......@@ -34,7 +34,7 @@ fi
echo "Current Android version: $currentAndroid"
# Check version format
if [[ ! $2 =~ ^[0-9]+.[0-9]+.[0-9]+(-(alpha|beta|rc)[-0-9]*)?$ || ! $3 =~ ^[0-9]+$ ]]; then
if [[ ! $2 =~ ^[0-9]+.[0-9]+.[0-9]+(-[a-z]+[-0-9]*)?$ || ! $3 =~ ^[0-9]+$ ]]; then
echo "Wrong version format"
echo "Usage:"
echo " > ./release.sh [pre|rel] <version> <android-version> <release_description>"
......@@ -53,16 +53,16 @@ case "$1" in
rel|pre)
# Change the version in files: 'package.json' and 'config.xml'
sed -i "s/version\": \"$current\"/version\": \"$2\"/g" package.json
currentConfigXmlVersion=$(grep -m 1 -oP "version=\"\d+.\d+.\d+(-\w+[0-9]*)?\"" config.xml | grep -oP "\d+.\d+.\d+(-\w+[0-9]*)?")
currentConfigXmlVersion=$(grep -m 1 -oP "version=\"\d+.\d+.\d+(-\w+[-0-9]*)?\"" config.xml | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
sed -i "s/ version=\"$currentConfigXmlVersion\"/ version=\"$2\"/g" config.xml
sed -i "s/ android-versionCode=\"$currentAndroid\"/ android-versionCode=\"$3\"/g" config.xml
# Change version in file: 'www/manifest.json'
currentManifestJsonVersion=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[0-9]*)?\"" www/manifest.json | grep -oP "\d+.\d+.\d+(-\w+[0-9]*)?")
currentManifestJsonVersion=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" www/manifest.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
sed -i "s/version\": \"$currentManifestJsonVersion\"/version\": \"$2\"/g" www/manifest.json
# Change version in file: 'resources/web-ext/manifest.json'
currentExtManifestJsonVersion=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[0-9]*)?\"" resources/web-ext/manifest.json | grep -oP "\d+.\d+.\d+(-\w+[0-9]*)?")
currentExtManifestJsonVersion=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" resources/web-ext/manifest.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
sed -i "s/version\": \"$currentExtManifestJsonVersion\"/version\": \"$2\"/g" resources/web-ext/manifest.json
# Bump the install.sh
......@@ -92,11 +92,7 @@ echo "----------------------------------"
cd ${PROJECT_DIR}/scripts || exit 1
./release-android.sh
#[[ $? -ne 0 ]] && exit 1
APK_SIGNED_FILE="${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-signed.apk"
if [[ ! -f "${APK_SIGNED_FILE}" ]]; then
echo "Missing signed APK file at: ${APK_SIGNED_FILE}"
exit 1
fi
echo "----------------------------------"
echo "- Building web and extension artifacts..."
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment