add standard ./make-release-build script
This commit is contained in:
parent
6775f86b65
commit
6989f9b2b0
|
@ -0,0 +1,76 @@
|
|||
#!/bin/bash
|
||||
# bash is required because we need bash's printf to guarantee a cross-platform
|
||||
# timestamp format.
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
# make sure we're on a signed tag that matches the version name
|
||||
versionName=`sed -n 's,.*versionName="\([^"]*\)".*,\1,p' AndroidManifest.xml`
|
||||
describe=`git describe`
|
||||
if [ $versionName != $describe ]; then
|
||||
echo "WARNING: building $describe, which is not the latest release ($versionName)"
|
||||
else
|
||||
# make a clearer warning above by putting this here
|
||||
set +x
|
||||
echo ""
|
||||
echo ""
|
||||
echo "Checking git tag signature for release build:"
|
||||
git tag -v $versionName
|
||||
echo ""
|
||||
echo ""
|
||||
set -x
|
||||
fi
|
||||
|
||||
|
||||
if [ -z $ANDROID_HOME ]; then
|
||||
if [ -e ~/.android/bashrc ]; then
|
||||
. ~/.android/bashrc
|
||||
else
|
||||
echo "ANDROID_HOME must be set!"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
projectroot=`pwd`
|
||||
projectname=`sed -n 's,.*name="app_name">\(.*\)<.*,\1,p' res/values/strings.xml`
|
||||
|
||||
# standardize timezone to reduce build differences
|
||||
export TZ=UTC
|
||||
TIMESTAMP=`printf '%(%Y-%m-%d %H:%M:%S)T' \
|
||||
$(git log -n1 --format=format:%at)`
|
||||
# run the clock at 5% speed, ant requires a moving clock
|
||||
TIMESTAMP_5=`printf '@%(%Y-%m-%d %H:%M:%S)T x0.05' \
|
||||
$(git log -n1 --format=format:%at)`
|
||||
|
||||
git reset --hard
|
||||
git clean -fdx
|
||||
git submodule foreach git reset --hard
|
||||
git submodule foreach git clean -fdx
|
||||
git submodule sync
|
||||
git submodule foreach git submodule sync
|
||||
git submodule update --init --recursive
|
||||
|
||||
|
||||
if [ -e ~/.android/ant.properties ]; then
|
||||
cp ~/.android/ant.properties $projectroot/
|
||||
else
|
||||
echo "skipping release ant.properties"
|
||||
fi
|
||||
|
||||
faketime "$TIMESTAMP" make -C external
|
||||
|
||||
./setup-ant
|
||||
faketime -f "$TIMESTAMP_5" ant release
|
||||
|
||||
apk=$projectroot/bin/$projectname-v$describe.apk
|
||||
|
||||
if which gpg > /dev/null; then
|
||||
if [ -z "`gpg --list-secret-keys`" ]; then
|
||||
echo "No GPG secret keys found, not signing APK"
|
||||
else
|
||||
gpg --armor --detach-sign $apk
|
||||
fi
|
||||
else
|
||||
echo "gpg not found, not signing APK"
|
||||
fi
|
Loading…
Reference in New Issue