OLD | NEW |
| 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 Loading... |
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()) |
OLD | NEW |