summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Grandin <grandinp@altern.org>2017-02-20 06:35:53 -0800
committerPierre Grandin <grandinp@altern.org>2017-02-20 06:35:53 -0800
commite80c3634788ac4f5440a5e92178488a5beb9438a (patch)
tree1b5ef1b70ce60f92721e10bfe0a4daa918dac661
parent5607f355e77250cebd5326a7c7959eb07c12adc2 (diff)
downloadnavit-e80c3634788ac4f5440a5e92178488a5beb9438a.tar.gz
Added automatic publishing to Playstore Beta
-rw-r--r--ci/basic_upload_apks.py82
-rw-r--r--ci/publish.sh10
-rw-r--r--circle.yml5
3 files changed, 97 insertions, 0 deletions
diff --git a/ci/basic_upload_apks.py b/ci/basic_upload_apks.py
new file mode 100644
index 000000000..b4b439536
--- /dev/null
+++ b/ci/basic_upload_apks.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the 'License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Uploads an apk to the beta track."""
+
+import argparse
+import sys
+from apiclient import sample_tools
+from oauth2client import client
+
+TRACK = 'beta' # Can be 'alpha', beta', 'production' or 'rollout'
+
+# Declare command-line flags.
+argparser = argparse.ArgumentParser(add_help=False)
+argparser.add_argument('package_name',
+ help='The package name. Example: com.android.sample')
+argparser.add_argument('apk_file',
+ nargs='?',
+ default='test.apk',
+ help='The path to the APK file to upload.')
+
+
+def main(argv):
+ # Authenticate and construct service.
+ service, flags = sample_tools.init(
+ argv,
+ 'androidpublisher',
+ 'v2',
+ __doc__,
+ __file__, parents=[argparser],
+ scope='https://www.googleapis.com/auth/androidpublisher')
+
+ # Process flags and read their values.
+ package_name = flags.package_name
+ apk_file = flags.apk_file
+
+ try:
+ edit_request = service.edits().insert(body={}, packageName=package_name)
+ result = edit_request.execute()
+ edit_id = result['id']
+
+ apk_response = service.edits().apks().upload(
+ editId=edit_id,
+ packageName=package_name,
+ media_body=apk_file).execute()
+
+ print 'Version code %d has been uploaded' % apk_response['versionCode']
+
+ track_response = service.edits().tracks().update(
+ editId=edit_id,
+ track=TRACK,
+ packageName=package_name,
+ body={u'versionCodes': [apk_response['versionCode']]}).execute()
+
+ print 'Track %s is set for version code(s) %s' % (
+ track_response['track'], str(track_response['versionCodes']))
+
+ commit_request = service.edits().commit(
+ editId=edit_id, packageName=package_name).execute()
+
+ print 'Edit "%s" has been committed' % (commit_request['id'])
+
+ except client.AccessTokenRefreshError:
+ print ('The credentials have been revoked or expired, please re-run the '
+ 'application to re-authorize')
+
+if __name__ == '__main__':
+ main(sys.argv)
+
diff --git a/ci/publish.sh b/ci/publish.sh
new file mode 100644
index 000000000..e38abd164
--- /dev/null
+++ b/ci/publish.sh
@@ -0,0 +1,10 @@
+cd ~/
+git clone git@github.com:navit-gps/infrastructure-blackbox.git
+cd infrastructure-blackbox/
+openssl aes-256-cbc -d -in keystore.gpg -k $KEY > ~/.keystore
+openssl aes-256-cbc -d -in clientsecret.gpg -k $KEY > client_secrets.json
+openssl aes-256-cbc -d -in androidpublisher.gpg -k $KEY > androidpublisher.dat
+
+jarsigner -storepass $SP $CIRCLE_ARTIFACTS/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
+python ~/navit/ci/basic_upload_apks.py org.navitproject.navit $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-signed.apk
diff --git a/circle.yml b/circle.yml
index 6fa1ccc22..9321c75b1 100644
--- a/circle.yml
+++ b/circle.yml
@@ -30,6 +30,11 @@ test:
files:
- ci/build_*.sh
deployment:
+ publish_to_playstore:
+ branch: master
+ owner: navit-gps
+ commands:
+ - bash ci/publish.sh
merge_into_master:
branch: trunk
owner: navit-gps