Index: sky/tools/big_red_button.py |
diff --git a/sky/tools/big_red_button.py b/sky/tools/big_red_button.py |
index c0968aefad1ecc8ad7669557865a09336bfb36d9..3136a24db8c252e921f861f29dd05c7c6a1d9a5c 100644 |
--- a/sky/tools/big_red_button.py |
+++ b/sky/tools/big_red_button.py |
@@ -4,52 +4,82 @@ |
# Make a commit, upload it, land it. |
+# Useful links: |
+# http://stackoverflow.com/questions/14665518/api-to-automatically-upload-apk-to-google-play |
+# https://developers.google.com/resources/api-libraries/documentation/androidpublisher/v2/python/latest/androidpublisher_v2.edits.apks.html |
+ |
+import argparse |
import os |
import subprocess |
+DEFAULT_MOJO_ROOT = '/src/mojo/src' |
+DEFAULT_SKY_SDK_ROOT = '/src/sky_sdk' |
+DEFAULT_DEMO_SITE_ROOT = '/src/domokit.github.io' |
+ |
def run(cwd, args): |
print 'RUNNING:', ' '.join(args), 'IN:', cwd |
subprocess.check_call(args, cwd=cwd) |
-# Input paths: |
-# FIXME: These could be args? |
-MOJO_ROOT = '/src/mojo/src' |
-SKY_SDK_ROOT = '/src/sky_sdk' |
-DEMO_SITE_ROOT = '/src/domokit.github.io' |
- |
-# Derived paths: |
-DART_SDK_ROOT = os.path.join(MOJO_ROOT, 'third_party/dart-sdk/dart-sdk') |
-PUB_PATH = os.path.join(DART_SDK_ROOT, 'bin/pub') |
-PACKAGES_ROOT = os.path.join(SKY_SDK_ROOT, 'packages') |
- |
- |
-run(MOJO_ROOT, ['git', 'pull', '--rebase']) |
-run(MOJO_ROOT, ['gclient', 'sync']) |
-run(MOJO_ROOT, ['mojo/tools/mojob.py', 'gn', '--android', '--release']) |
-run(MOJO_ROOT, ['mojo/tools/mojob.py', 'build', '--android', '--release']) |
-# Run tests? |
- |
-run(SKY_SDK_ROOT, ['git', 'reset', '--hard', 'origin/master']) |
-run(MOJO_ROOT, [ |
- 'sky/tools/deploy_sdk.py', |
- '--non-interactive', |
- '--commit', |
- SKY_SDK_ROOT |
-]) |
-# tag for version? |
- |
-run(DEMO_SITE_ROOT, ['git', 'reset', '--hard', 'origin/master']) |
-run(MOJO_ROOT, ['mojo/tools/deploy_domokit_site.py', DEMO_SITE_ROOT]) |
-# tag for version? |
- |
-for package in os.listdir(PACKAGES_ROOT): |
- package_path = os.path.join(PACKAGES_ROOT, package) |
- if not os.path.isdir(package_path): |
- continue |
- run(package_path, [PUB_PATH, 'publish', '--force']) |
- |
-run(SKY_SDK_ROOT, ['git', 'push']) |
-run(DEMO_SITE_ROOT, ['git', 'push']) |
-# http://stackoverflow.com/questions/14665518/api-to-automatically-upload-apk-to-google-play |
-# https://developers.google.com/resources/api-libraries/documentation/androidpublisher/v2/python/latest/androidpublisher_v2.edits.apks.html |
+def main(): |
+ parser = argparse.ArgumentParser(description='Deploy!') |
+ parser.add_argument('--mojo-root', |
+ action='store', |
+ type=str, |
+ metavar='mojo_root', |
+ help='Path to mojo/src', |
+ default=DEFAULT_MOJO_ROOT) |
+ parser.add_argument('--sky-sdk-root', |
+ action='store', |
+ type=str, |
+ metavar='sky_sdk_root', |
+ help='Path to sky_sdk', |
+ default=DEFAULT_SKY_SDK_ROOT) |
+ parser.add_argument('--demo-site-root', |
+ action='store', |
+ type=str, |
+ metavar='demo_site_root', |
+ help='Path to domokit.github.io', |
+ default=DEFAULT_DEMO_SITE_ROOT) |
+ args = parser.parse_args() |
+ |
+ mojo_root = args.mojo_root |
+ sky_sdk_root = args.sky_sdk_root |
+ demo_site_root = args.demo_site_root |
+ |
+ # Derived paths: |
+ dart_sdk_root = os.path.join(mojo_root, 'third_party/dart-sdk/dart-sdk') |
+ pub_path = os.path.join(dart_sdk_root, 'bin/pub') |
+ packages_root = os.path.join(sky_sdk_root, 'packages') |
+ |
+ run(mojo_root, ['git', 'pull', '--rebase']) |
+ run(mojo_root, ['gclient', 'sync']) |
+ run(mojo_root, ['mojo/tools/mojob.py', 'gn', '--android', '--release']) |
+ run(mojo_root, ['mojo/tools/mojob.py', 'build', '--android', '--release']) |
+ # Run tests? |
+ |
+ run(sky_sdk_root, ['git', 'reset', '--hard', 'origin/master']) |
+ run(mojo_root, [ |
+ 'sky/tools/deploy_sdk.py', |
+ '--non-interactive', |
+ '--commit', |
+ sky_sdk_root |
+ ]) |
+ # tag for version? |
+ |
+ run(demo_site_root, ['git', 'reset', '--hard', 'origin/master']) |
+ run(mojo_root, ['mojo/tools/deploy_domokit_site.py', demo_site_root]) |
+ # tag for version? |
+ |
+ for package in os.listdir(packages_root): |
+ package_path = os.path.join(packages_root, package) |
+ if not os.path.isdir(package_path): |
+ continue |
+ run(package_path, [pub_path, 'publish', '--force']) |
+ |
+ run(sky_sdk_root, ['git', 'push']) |
+ run(demo_site_root, ['git', 'push']) |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(main()) |