diff options
author | Pierre Grandin <grandinp@altern.org> | 2017-02-20 06:35:53 -0800 |
---|---|---|
committer | Pierre Grandin <grandinp@altern.org> | 2017-02-20 06:35:53 -0800 |
commit | e80c3634788ac4f5440a5e92178488a5beb9438a (patch) | |
tree | 1b5ef1b70ce60f92721e10bfe0a4daa918dac661 | |
parent | 5607f355e77250cebd5326a7c7959eb07c12adc2 (diff) | |
download | navit-e80c3634788ac4f5440a5e92178488a5beb9438a.tar.gz |
Added automatic publishing to Playstore Beta
-rw-r--r-- | ci/basic_upload_apks.py | 82 | ||||
-rw-r--r-- | ci/publish.sh | 10 | ||||
-rw-r--r-- | circle.yml | 5 |
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 |