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

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

Issue 1234803004: Update big_red_button instructions and add --dry-run mode. (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 | no next file » | 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 1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 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 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # Prepare release script. 6 # Prepare release script.
7 # 7 #
8 # 1) Bump versions: 8 # 1) Bump versions using sky/tools/roll_versions.py
9 # sky/sdk/example/demo_launcher/apk/AndroidManifest.xml 9 # 2) Add any additional information to touched CHANGELOG.md files.
10 # mojo/dart/mojo_services/pubspec.yaml 10 # 3) Add any release_notes/version.txt files for updated apks.
11 # mojo/dart/mojom/pubspec.yaml 11 # 4) Make a commit, upload it, land it.
12 # mojo/public/dart/pubspec.yaml 12 # 5) Run this script.
13 # sky/sdk/pubspec.yaml 13 # 6) Publish updated apks using sky/tools/publish_apk.py
14 #
15 # 2) Update change logs:
16 # mojo/dart/mojo_services/CHANGELOG.md
17 # mojo/dart/mojom/CHANGELOG.md
18 # mojo/public/dart/CHANGELOG.md
19 # sky/sdk/CHANGELOG.md
20 #
21 # 3) Make a commit, upload it, land it.
22 #
23 # 4) Run this script.
24 #
25 14
26 import argparse 15 import argparse
27 import os 16 import os
28 import subprocess 17 import subprocess
29 import sys 18 import sys
30 import distutils.util 19 import distutils.util
31 20
21
32 DEFAULT_MOJO_ROOT = '/src/mojo/src' 22 DEFAULT_MOJO_ROOT = '/src/mojo/src'
33 DEFAULT_SKY_SDK_ROOT = '/src/sky_sdk' 23 DEFAULT_SKY_SDK_ROOT = '/src/sky_sdk'
34 DEFAULT_DEMO_SITE_ROOT = '/src/domokit.github.io' 24 DEFAULT_DEMO_SITE_ROOT = '/src/domokit.github.io'
35 CONFIRM_MESSAGE = """This tool is destructive and will revert your current branc h to 25 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?""" 26 origin/master among other things. Are you sure you wish to continue?"""
27 DRY_RUN = False
37 28
38 29
39 def run(cwd, args): 30 def run(cwd, args):
40 print 'RUNNING:', ' '.join(args), 'IN:', cwd 31 print 'RUNNING:', ' '.join(args), 'IN:', cwd
32 if DRY_RUN:
33 return
41 subprocess.check_call(args, cwd=cwd) 34 subprocess.check_call(args, cwd=cwd)
42 35
43 36
44 def confirm(prompt): 37 def confirm(prompt):
45 user_input = raw_input("%s (y/N) " % prompt) 38 user_input = raw_input("%s (y/N) " % prompt)
46 try: 39 try:
47 return distutils.util.strtobool(user_input) == 1 40 return distutils.util.strtobool(user_input) == 1
48 except ValueError: 41 except ValueError:
49 return False 42 return False
50 43
51 44
45 def publish_packages(pub_path, packages_root):
46 for package in os.listdir(packages_root):
47 package_path = os.path.join(packages_root, package)
48 if not os.path.isdir(package_path):
49 continue
50 run(package_path, [pub_path, 'publish', '--force'])
51
52
52 def main(): 53 def main():
53 parser = argparse.ArgumentParser(description='Deploy!') 54 parser = argparse.ArgumentParser(description='Deploy!')
54 parser.add_argument('--mojo-root', 55 parser.add_argument('--mojo-root', help='Path to mojo/src',
55 action='store', 56 default=DEFAULT_MOJO_ROOT)
56 type=str, 57 parser.add_argument('--sky-sdk-root', help='Path to sky_sdk',
57 metavar='mojo_root', 58 default=DEFAULT_SKY_SDK_ROOT)
58 help='Path to mojo/src', 59 parser.add_argument('--demo-site-root', help='Path to domokit.github.io',
59 default=DEFAULT_MOJO_ROOT) 60 default=DEFAULT_DEMO_SITE_ROOT)
60 parser.add_argument('--sky-sdk-root', 61 parser.add_argument('--dry-run', action='store_true', default=False,
61 action='store', 62 help='Just print commands w/o executing.')
62 type=str, 63 parser.add_argument('--no-pub-publish', dest='publish',
63 metavar='sky_sdk_root', 64 action='store_false', default=True, help='Skip pub publish step.')
64 help='Path to sky_sdk',
65 default=DEFAULT_SKY_SDK_ROOT)
66 parser.add_argument('--demo-site-root',
67 action='store',
68 type=str,
69 metavar='demo_site_root',
70 help='Path to domokit.github.io',
71 default=DEFAULT_DEMO_SITE_ROOT)
72 args = parser.parse_args() 65 args = parser.parse_args()
73 66
74 if not confirm(CONFIRM_MESSAGE): 67 global DRY_RUN
68 DRY_RUN = args.dry_run
69
70 if not args.dry_run and not confirm(CONFIRM_MESSAGE):
75 print "Aborted." 71 print "Aborted."
76 return 1 72 return 1
77 73
78 mojo_root = os.path.abspath(os.path.expanduser(args.mojo_root)) 74 mojo_root = os.path.abspath(os.path.expanduser(args.mojo_root))
79 sky_sdk_root = os.path.abspath(os.path.expanduser(args.sky_sdk_root)) 75 sky_sdk_root = os.path.abspath(os.path.expanduser(args.sky_sdk_root))
80 demo_site_root = os.path.abspath(os.path.expanduser(args.demo_site_root)) 76 demo_site_root = os.path.abspath(os.path.expanduser(args.demo_site_root))
81 77
82 # Derived paths: 78 # Derived paths:
83 dart_sdk_root = os.path.join(mojo_root, 'third_party/dart-sdk/dart-sdk') 79 dart_sdk_root = os.path.join(mojo_root, 'third_party/dart-sdk/dart-sdk')
84 pub_path = os.path.join(dart_sdk_root, 'bin/pub') 80 pub_path = os.path.join(dart_sdk_root, 'bin/pub')
(...skipping 13 matching lines...) Expand all
98 '--commit', 94 '--commit',
99 sky_sdk_root 95 sky_sdk_root
100 ]) 96 ])
101 # tag for version? 97 # tag for version?
102 98
103 run(demo_site_root, ['git', 'fetch']) 99 run(demo_site_root, ['git', 'fetch'])
104 run(demo_site_root, ['git', 'reset', '--hard', 'origin/master']) 100 run(demo_site_root, ['git', 'reset', '--hard', 'origin/master'])
105 run(mojo_root, ['mojo/tools/deploy_domokit_site.py', demo_site_root]) 101 run(mojo_root, ['mojo/tools/deploy_domokit_site.py', demo_site_root])
106 # tag for version? 102 # tag for version?
107 103
108 for package in os.listdir(packages_root): 104 if args.publish:
109 package_path = os.path.join(packages_root, package) 105 publish_packages(pub_path, packages_root)
110 if not os.path.isdir(package_path):
111 continue
112 run(package_path, [pub_path, 'publish', '--force'])
113 106
114 run(sky_sdk_root, ['git', 'push']) 107 run(sky_sdk_root, ['git', 'push'])
115 run(demo_site_root, ['git', 'push']) 108 run(demo_site_root, ['git', 'push'])
116 109
117 110
118 if __name__ == '__main__': 111 if __name__ == '__main__':
119 sys.exit(main()) 112 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698