diff options
author | Pierre GRANDIN <pgrandin@users.noreply.github.com> | 2018-04-25 09:09:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-25 09:09:43 -0700 |
commit | 011bb15468b4cb626e9facecba924b04bd494d7f (patch) | |
tree | 790d9284a44ecd599e31bd3bc31dcec3fc0b7153 | |
parent | a112437440b704677d5258e6ef03b50b8f9ea2cd (diff) | |
download | navit-011bb15468b4cb626e9facecba924b04bd494d7f.tar.gz |
Fix:CI:Automated upload to playstore (#540)
* Working on automated playstore updates
* Working on automated playstore updates
* Install certs before pulling CI cache
* Testing playstore update from android build job
* Updated publish.sh
* Setup git to pull from blackbox
* Setup git to pull from blackbox in the correct job
* Install pip, needed for playstore updates
* Push to playstore from the android build, not a seperate step
* upload to playstore from the official trunk only
* Sign apks before updating download center
* Cache isn't needed anymore for android arm builds
* Save signed apks as part of the artifacts
* Moved package installation to the Dockerfile
* Install ca-certs and pip when preparing android build
-rw-r--r-- | .circleci/config.yml | 9 | ||||
-rw-r--r-- | ci/publish.sh | 29 | ||||
-rw-r--r-- | ci/setup_android.sh | 2 |
3 files changed, 32 insertions, 8 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 8cf0cb352..0089ed7c8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,6 +46,15 @@ jobs: name: Build for Android ARM command: | bash ci/build_android.sh + - run: + name: configure ssh git + command: mkdir -p ~/.ssh/ && ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts + - add_ssh_keys: + fingerprints: + - "16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48" + - run: + name: Update beta channel on PlayStore + command: bash ci/publish.sh - store_artifacts: path: android-arm/navit/android/bin - run: diff --git a/ci/publish.sh b/ci/publish.sh index 58c3c05d5..b3c0a6298 100644 --- a/ci/publish.sh +++ b/ci/publish.sh @@ -1,20 +1,35 @@ #!/bin/sh + +if [ -z $CI ];then + echo "This Script needs to be run by CI" +fi +if [ -z $CIRCLECI ];then + echo "This Script needs to be run on CircleCI" +fi +if [[ "${CIRCLE_PROJECT_USERNAME}" != "navit-gps" || "${CIRCLE_BRANCH}" != "trunk" ]]; then + echo "Only trunk on navit-gps may upload to the Play Store" + exit 0 +fi + set -e ARCH="arm" +BINPATH="android-arm/navit/android/bin" + +export PATH="/opt/android-sdk-linux/build-tools/25.0.1/":$PATH cd ~/ git clone git@github.com:navit-gps/infrastructure-blackbox.git cd infrastructure-blackbox/keyrings/ openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore -openssl aes-256-cbc -d -in client_secrets.gpg -k $KEY > ~/navit/ci/client_secrets.json -openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat +openssl aes-256-cbc -d -in client_secrets.gpg -k $KEY > /root/project/ci/client_secrets.json +openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > /root/project/androidpublisher.dat +cd ~/project pip install google-api-python-client -jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -storepass $SP $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $key_name +jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -storepass $SP $BINPATH/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $key_name -/usr/local/android-sdk-linux/build-tools/25.0.1/zipalign 4 $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk -# /usr/local/android-sdk-linux/build-tools/25.0.1/apksigner sign -v --ks-pass pass:$SP --key $key_name $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk -/usr/local/android-sdk-linux/build-tools/25.0.1/apksigner verify -v $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk -python ~/navit/ci/basic_upload_apks.py org.navitproject.navit $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk +zipalign 4 $BINPATH/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk $BINPATH/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk +apksigner verify -v $BINPATH/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk +python ~/project/ci/basic_upload_apks.py org.navitproject.navit $BINPATH/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk --noauth_local_webserver diff --git a/ci/setup_android.sh b/ci/setup_android.sh index 992044302..fee29613b 100644 --- a/ci/setup_android.sh +++ b/ci/setup_android.sh @@ -3,7 +3,7 @@ set -e apt-get update && apt-get install -y software-properties-common add-apt-repository -y ppa:openjdk-r/ppa -apt-get update && apt-get install -y openjdk-8-jdk wget expect git curl libsaxonb-java ant +apt-get update && apt-get install -y openjdk-8-jdk wget expect curl libsaxonb-java ant ca-certificates python-pip apt-get remove -y openjdk-7-jre-headless export ANDROID_SDK_HOME=/opt/android-sdk-linux |