From d4b0063e44c026d84bc436b0dd228e067717f35a Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Fri, 20 Dec 2019 12:07:06 -0800 Subject: [PATCH] Store upload --- .travis.yml | 2 +- deploy/google_play_upload.py | 85 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100755 deploy/google_play_upload.py diff --git a/.travis.yml b/.travis.yml index 82915c3..68e22d7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -211,7 +211,7 @@ after_success: pip install --user --upgrade oauth2client && pip install --user google-api-python-client pyopenssl ndg-httpsclient pyasn1 && openssl aes-256-cbc -K $encrypted_25db6eb7c3fd_key -iv $encrypted_25db6eb7c3fd_iv -in android/Google_Play_Android_Developer-4432a3c4f5d1.json.enc -out android/Google_Play_Android_Developer-4432a3c4f5d1.json -d && - ./tools/google_play_upload.py production ${GOOGLE_PLAY_PKG} ${SHADOW_BUILD_DIR}/release/package/QGroundControl${BITNESS}.apk; + ./deploy/google_play_upload.py ${GOOGLE_PLAY_PKG} ${SHADOW_BUILD_DIR}/release/package/QGroundControl${BITNESS}.apk; fi before_deploy: diff --git a/deploy/google_play_upload.py b/deploy/google_play_upload.py new file mode 100755 index 0000000..48be3b0 --- /dev/null +++ b/deploy/google_play_upload.py @@ -0,0 +1,85 @@ +#!/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. + +# Comes from here: https://github.com/googlesamples/android-play-publisher-api/blob/master/v3/python/upload_apks_rollout.py + +"""Uploads apk to rollout track with user fraction.""" + +import argparse +import sys +from apiclient import sample_tools +from oauth2client import client + +TRACK = 'rollout' +USER_FRACTION = 0.2 + +# 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', + 'v3', + __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'releases': [{ + u'versionCodes': [str([apk_response['versionCode']])], + u'status': u'completed', + }]}).execute() + + print 'Track %s is set with releases: %s' % ( + track_response['track'], str(track_response['releases'])) + + 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)