summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre GRANDIN <pgrandin@users.noreply.github.com>2018-04-25 09:09:43 -0700
committerGitHub <noreply@github.com>2018-04-25 09:09:43 -0700
commit011bb15468b4cb626e9facecba924b04bd494d7f (patch)
tree790d9284a44ecd599e31bd3bc31dcec3fc0b7153
parenta112437440b704677d5258e6ef03b50b8f9ea2cd (diff)
downloadnavit-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.yml9
-rw-r--r--ci/publish.sh29
-rw-r--r--ci/setup_android.sh2
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