mirror of
https://github.com/nextcloud/android.git
synced 2024-10-23 20:46:04 +03:00
a6c95934cf
We: * No longer include commit ids * Exclude merges, individual Dependabot commits, commits including only non-user-facing changes, or version bump commits * Collapse all Dependabot commits into a single "Update dependencies" changelog entry * Do the same for Transifex updates, which get turned into a single "Update translations" changelog entry * Say if the Android Nextcloud library has changed instead of including its commit id The list of paths to ignore is probably incomplete, but it's easier to just revisit this script over time and add to it as new contenders pop up, rather than trying to find everything now. Fixes #5525 Signed-off-by: AJ Jordan <alex@strugee.net>
72 lines
2.5 KiB
Bash
Executable file
72 lines
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
date=$(date +%Y%m%d)
|
|
|
|
# use current date for version code/name
|
|
sed -i "/versionDev/,/\}/ s/versionCode .*/versionCode $date/" build.gradle
|
|
sed -i "/versionDev/,/\}/ s/versionName .*/versionName \"$date\"/" build.gradle
|
|
|
|
# build signed apk
|
|
./gradlew assembleVersionDevRelease >> /tmp/dev.log 2>&1
|
|
|
|
if [ $? != 0 ] ; then
|
|
echo "Build error!"
|
|
exit 1
|
|
fi
|
|
|
|
# sign
|
|
mkdir -p ~/apks
|
|
|
|
source ~/.gradle/devVersionSecrets
|
|
/home/nextcloud/bin/apksigner sign --ks-pass env:VERSION_DEV_STORE_PASSWORD \
|
|
--key-pass env:VERSION_DEV_KEY_PASSWORD \
|
|
--ks $VERSION_DEV_STORE_FILE \
|
|
--out ~/apks/nextcloud-dev-$date.apk \
|
|
./build/outputs/apk/versionDev/release/versionDev-release-$date.apk
|
|
|
|
# use the current date
|
|
echo $date > ~/apks/latest
|
|
|
|
ln -s nextcloud-dev-$date.apk latest.apk
|
|
mv latest.apk ~/apks/
|
|
|
|
# remove all but the latest 5 apks
|
|
/bin/ls -t ~/apks/*.apk | awk 'NR>6' | xargs rm -f
|
|
|
|
lastBuildTime=$(date --date="$(git log -1 --format=%ai $(git tag | grep dev | tail -n1))" +%s)
|
|
# Show only the commit subject in the changelog and filter out:
|
|
# * Merges
|
|
# * Dependabot commits
|
|
# * Commits touching only non-user-facing stuff like tests
|
|
# * Version bump commits
|
|
changelog=$(git log --no-merges --after=$lastBuildTime --invert-grep --author=dependabot --pretty='format:%s' -- ':!src/androidTest' ':!.*' ':!scripts/analysis' | grep -vE '^daily dev [[:digit:]]{8}$')
|
|
# Make Transifex updates have a nicer description
|
|
if echo "$changelog" | grep -q 'tx-robot'; then
|
|
changelog=$(echo "$changelog" | grep -v 'tx-robot')
|
|
# This is a funky bashism - preceding a single-quote string with $ lets you put escape chars in it
|
|
changelog="${changelog}"$'\nUpdate translations'
|
|
fi
|
|
|
|
libraryCommit=$(curl https://api.github.com/repos/nextcloud/android-library/commits/master | jq .sha | sed s'/\"//g')
|
|
|
|
# Check if the library was updated
|
|
if ! grep -q libraryCommit build.gradle; then
|
|
changelog="${changelog}"$'\nUpdate Nextcloud Android library'
|
|
fi
|
|
|
|
# Collapse dependency updates into a single "Update dependencies" entry
|
|
if git log --after=$lastBuildTime --pretty='format:%an' | grep -q dependabot; then
|
|
changelog="${changelog}"$'\nUpdate 3rd-party dependencies'
|
|
fi
|
|
|
|
# changelog
|
|
echo "$changelog" > src/versionDev/fastlane/metadata/android/en-US/changelogs/$date.txt
|
|
|
|
# build
|
|
sed -i s"# androidLibraryVersion.*#androidLibraryVersion =\"$libraryCommit\"#" build.gradle
|
|
|
|
git add .
|
|
git commit -m "daily dev $date" -m "$changelog"
|
|
git push
|
|
|
|
git tag dev-$date
|
|
git push origin dev-$date
|