diff --git a/README.md b/README.md index 7538608a..206ee350 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,8 @@ Set the `ANDROID_NDK` environment variable to the Android NDK folder (e.g. `expo Build Go and Syncthing using `./make-all.bash`. Use `./gradlew assembleDebug` in the project directory to compile the APK. +To prepare a new release, execute `./prepare-release.bash`, and follow the instructions. + To check for updated gradle dependencies, run `gradle dependencyUpdates`. Additionally, the git submodule in `ext/syncthing/src/github.com/syncthing/syncthing` may need to be updated. diff --git a/prepare-release.bash b/prepare-release.bash new file mode 100755 index 00000000..e18021f8 --- /dev/null +++ b/prepare-release.bash @@ -0,0 +1,79 @@ +#!/bin/bash + +set -e + +NEW_VERSION_NAME=$1 +OLD_VERSION_NAME=$(grep "versionName" "build.gradle" | awk '{print $2}') +if [[ -z $NEW_VERSION_NAME ]] +then + echo "New version name is empty. Please set a new version. Current version: $OLD_VERSION_NAME" + exit +fi + +echo " + +Checking for Syncthing Update +----------------------------- +" +PROJECT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "ext/syncthing/src/github.com/syncthing/syncthing/" +git fetch +CURRENT_TAG=$(git describe) +LATEST_TAG=$(git describe $(git rev-list --tags --max-count=1)) +if [ $CURRENT_TAG != $LATEST_TAG ] +then + git checkout -f $LATEST_TAG + cd $PROJECT_DIR + git add "ext/syncthing/src/github.com/syncthing/syncthing" + git commit -m "Updated Syncthing to $LATEST_TAG" + ./gradlew cleanNative buildNative +fi +cd $PROJECT_DIR + + +echo " + +Updating Translations +----------------------------- +" +tx push -s +tx pull -a +./gradlew deleteUnsupportedPlayTranslations publishListingFatRelease +git add -A "src/fat/play/" +git add -A "src/main/res/values-*/strings.xml" +if ! git diff --cached --exit-code; +then + git commit -m "Imported translations" +fi + + +echo " + +Running Tests +----------------------------- +" +./gradlew lint +./gradlew connectedFatDebugAndroidTest +./gradlew testFatDebugUnitTest + +echo " + +Updating Version +----------------------------- +" +OLD_VERSION_CODE=$(grep "versionCode" "build.gradle" -m 1 | awk '{print $2}') +NEW_VERSION_CODE=$(($OLD_VERSION_CODE + 1)) +sed -i "s/versionCode $OLD_VERSION_CODE/versionCode $NEW_VERSION_CODE/" build.gradle + +OLD_VERSION_NAME=$(grep "versionName" "build.gradle" | awk '{print $2}') +sed -i "s/$OLD_VERSION_NAME/\"$1\"/" build.gradle +git add "build.gradle" +git commit -m "Bumped version to $NEW_VERSION_NAME" + +echo " +Update ready. +1. Run \`git push --follow-tags\` +2. Enter release notes at https://github.com/syncthing/syncthing-android/releases +3. Enter release notes at https://android.syncthing.net/job/Syncthing-Android-Release/configure +4. Start build at https://android.syncthing.net/job/Syncthing-Android-Release +"