Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(315)

Side by Side Diff: sky/tools/big_red_button.py

Issue 1233853006: Add a script for publishing an APK to the Play store. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | sky/tools/publish_apk.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
1 # Prepare release script. 6 # Prepare release script.
2 # 7 #
3 # 1) Bump versions: 8 # 1) Bump versions:
4 # sky/sdk/example/demo_launcher/apk/AndroidManifest.xml 9 # sky/sdk/example/demo_launcher/apk/AndroidManifest.xml
5 # mojo/dart/mojo_services/pubspec.yaml 10 # mojo/dart/mojo_services/pubspec.yaml
6 # mojo/dart/mojom/pubspec.yaml 11 # mojo/dart/mojom/pubspec.yaml
7 # mojo/public/dart/pubspec.yaml 12 # mojo/public/dart/pubspec.yaml
8 # sky/sdk/pubspec.yaml 13 # sky/sdk/pubspec.yaml
9 # 14 #
10 # 2) Update change logs: 15 # 2) Update change logs:
11 # mojo/dart/mojo_services/CHANGELOG.md 16 # mojo/dart/mojo_services/CHANGELOG.md
12 # mojo/dart/mojom/CHANGELOG.md 17 # mojo/dart/mojom/CHANGELOG.md
13 # mojo/public/dart/CHANGELOG.md 18 # mojo/public/dart/CHANGELOG.md
14 # sky/sdk/CHANGELOG.md 19 # sky/sdk/CHANGELOG.md
15 # 20 #
16 # 3) Make a commit, upload it, land it. 21 # 3) Make a commit, upload it, land it.
17 # 22 #
18 # 4) Run this script. 23 # 4) Run this script.
19 # 24 #
20 25
21 # Useful links:
22 # http://stackoverflow.com/questions/14665518/api-to-automatically-upload-apk-to -google-play
23 # https://developers.google.com/resources/api-libraries/documentation/androidpub lisher/v2/python/latest/androidpublisher_v2.edits.apks.html
24
25 import argparse 26 import argparse
26 import os 27 import os
27 import subprocess 28 import subprocess
28 import sys 29 import sys
30 import distutils.util
29 31
30 DEFAULT_MOJO_ROOT = '/src/mojo/src' 32 DEFAULT_MOJO_ROOT = '/src/mojo/src'
31 DEFAULT_SKY_SDK_ROOT = '/src/sky_sdk' 33 DEFAULT_SKY_SDK_ROOT = '/src/sky_sdk'
32 DEFAULT_DEMO_SITE_ROOT = '/src/domokit.github.io' 34 DEFAULT_DEMO_SITE_ROOT = '/src/domokit.github.io'
35 CONFIRM_MESSAGE = """This tool is destructive and will revert your current branc h to
36 origin/master among other things. Are you sure you wish to continue?"""
37
33 38
34 def run(cwd, args): 39 def run(cwd, args):
35 print 'RUNNING:', ' '.join(args), 'IN:', cwd 40 print 'RUNNING:', ' '.join(args), 'IN:', cwd
36 subprocess.check_call(args, cwd=cwd) 41 subprocess.check_call(args, cwd=cwd)
37 42
38 43
44 def confirm(prompt):
45 user_input = raw_input("%s (y/N) " % prompt)
46 try:
47 return distutils.util.strtobool(user_input) == 1
48 except ValueError:
49 return False
50
51
39 def main(): 52 def main():
40 parser = argparse.ArgumentParser(description='Deploy!') 53 parser = argparse.ArgumentParser(description='Deploy!')
41 parser.add_argument('--mojo-root', 54 parser.add_argument('--mojo-root',
42 action='store', 55 action='store',
43 type=str, 56 type=str,
44 metavar='mojo_root', 57 metavar='mojo_root',
45 help='Path to mojo/src', 58 help='Path to mojo/src',
46 default=DEFAULT_MOJO_ROOT) 59 default=DEFAULT_MOJO_ROOT)
47 parser.add_argument('--sky-sdk-root', 60 parser.add_argument('--sky-sdk-root',
48 action='store', 61 action='store',
49 type=str, 62 type=str,
50 metavar='sky_sdk_root', 63 metavar='sky_sdk_root',
51 help='Path to sky_sdk', 64 help='Path to sky_sdk',
52 default=DEFAULT_SKY_SDK_ROOT) 65 default=DEFAULT_SKY_SDK_ROOT)
53 parser.add_argument('--demo-site-root', 66 parser.add_argument('--demo-site-root',
54 action='store', 67 action='store',
55 type=str, 68 type=str,
56 metavar='demo_site_root', 69 metavar='demo_site_root',
57 help='Path to domokit.github.io', 70 help='Path to domokit.github.io',
58 default=DEFAULT_DEMO_SITE_ROOT) 71 default=DEFAULT_DEMO_SITE_ROOT)
59 args = parser.parse_args() 72 args = parser.parse_args()
60 73
74 if not confirm(CONFIRM_MESSAGE):
75 print "Aborted."
76 return 1
77
61 mojo_root = os.path.abspath(os.path.expanduser(args.mojo_root)) 78 mojo_root = os.path.abspath(os.path.expanduser(args.mojo_root))
62 sky_sdk_root = os.path.abspath(os.path.expanduser(args.sky_sdk_root)) 79 sky_sdk_root = os.path.abspath(os.path.expanduser(args.sky_sdk_root))
63 demo_site_root = os.path.abspath(os.path.expanduser(args.demo_site_root)) 80 demo_site_root = os.path.abspath(os.path.expanduser(args.demo_site_root))
64 81
65 # Derived paths: 82 # Derived paths:
66 dart_sdk_root = os.path.join(mojo_root, 'third_party/dart-sdk/dart-sdk') 83 dart_sdk_root = os.path.join(mojo_root, 'third_party/dart-sdk/dart-sdk')
67 pub_path = os.path.join(dart_sdk_root, 'bin/pub') 84 pub_path = os.path.join(dart_sdk_root, 'bin/pub')
68 packages_root = os.path.join(sky_sdk_root, 'packages') 85 packages_root = os.path.join(sky_sdk_root, 'packages')
69 86
70 run(mojo_root, ['git', 'pull', '--rebase']) 87 run(mojo_root, ['git', 'pull', '--rebase'])
(...skipping 20 matching lines...) Expand all
91 if not os.path.isdir(package_path): 108 if not os.path.isdir(package_path):
92 continue 109 continue
93 run(package_path, [pub_path, 'publish', '--force']) 110 run(package_path, [pub_path, 'publish', '--force'])
94 111
95 run(sky_sdk_root, ['git', 'push']) 112 run(sky_sdk_root, ['git', 'push'])
96 run(demo_site_root, ['git', 'push']) 113 run(demo_site_root, ['git', 'push'])
97 114
98 115
99 if __name__ == '__main__': 116 if __name__ == '__main__':
100 sys.exit(main()) 117 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | sky/tools/publish_apk.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698