Mercurial > hg
annotate contrib/automation/hgautomation/cli.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | c5c502bd1f70 |
children | 9d441f820c8b |
rev | line source |
---|---|
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 # cli.py - Command line interface for automation |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 # |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 # Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com> |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
4 # |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
7 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
8 # no-check-code because Python 3 native. |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
10 import argparse |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
11 import concurrent.futures as futures |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
12 import os |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
13 import pathlib |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
14 import time |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
15 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
16 from . import ( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
17 aws, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
18 HGAutomation, |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
19 linux, |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
20 try_server, |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
21 windows, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
22 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
23 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
24 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
25 SOURCE_ROOT = pathlib.Path( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
26 os.path.abspath(__file__) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
27 ).parent.parent.parent.parent |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
28 DIST_PATH = SOURCE_ROOT / 'dist' |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
29 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
30 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
31 def bootstrap_linux_dev( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
32 hga: HGAutomation, aws_region, distros=None, parallel=False |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
33 ): |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
34 c = hga.aws_connection(aws_region) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
35 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
36 if distros: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
37 distros = distros.split(',') |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
38 else: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
39 distros = sorted(linux.DISTROS) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
40 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
41 # TODO There is a wonky interaction involving KeyboardInterrupt whereby |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
42 # the context manager that is supposed to terminate the temporary EC2 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
43 # instance doesn't run. Until we fix this, make parallel building opt-in |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
44 # so we don't orphan instances. |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
45 if parallel: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
46 fs = [] |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
47 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
48 with futures.ThreadPoolExecutor(len(distros)) as e: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
49 for distro in distros: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
50 fs.append(e.submit(aws.ensure_linux_dev_ami, c, distro=distro)) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
51 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
52 for f in fs: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
53 f.result() |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
54 else: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
55 for distro in distros: |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
56 aws.ensure_linux_dev_ami(c, distro=distro) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
57 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
58 |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
59 def bootstrap_windows_dev(hga: HGAutomation, aws_region, base_image_name): |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
60 c = hga.aws_connection(aws_region) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
61 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
62 print('Windows development AMI available as %s' % image.id) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
63 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
64 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
65 def build_inno( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
66 hga: HGAutomation, aws_region, arch, revision, version, base_image_name |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
67 ): |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
68 c = hga.aws_connection(aws_region) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
69 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
70 DIST_PATH.mkdir(exist_ok=True) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
71 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
72 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts: |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
73 instance = insts[0] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
74 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
75 windows.synchronize_hg(SOURCE_ROOT, revision, instance) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
76 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
77 for a in arch: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
78 windows.build_inno_installer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
79 instance.winrm_client, a, DIST_PATH, version=version |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
80 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
81 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
82 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
83 def build_wix( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
84 hga: HGAutomation, aws_region, arch, revision, version, base_image_name |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
85 ): |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
86 c = hga.aws_connection(aws_region) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
87 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
88 DIST_PATH.mkdir(exist_ok=True) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
89 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
90 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts: |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
91 instance = insts[0] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
92 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
93 windows.synchronize_hg(SOURCE_ROOT, revision, instance) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
94 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
95 for a in arch: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
96 windows.build_wix_installer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
97 instance.winrm_client, a, DIST_PATH, version=version |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
98 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
99 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
100 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
101 def build_windows_wheel( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
102 hga: HGAutomation, aws_region, arch, revision, base_image_name |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
103 ): |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
104 c = hga.aws_connection(aws_region) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
105 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
106 DIST_PATH.mkdir(exist_ok=True) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
107 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
108 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts: |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
109 instance = insts[0] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
110 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
111 windows.synchronize_hg(SOURCE_ROOT, revision, instance) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
112 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
113 for a in arch: |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
114 windows.build_wheel(instance.winrm_client, a, DIST_PATH) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
115 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
116 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
117 def build_all_windows_packages( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
118 hga: HGAutomation, aws_region, revision, version, base_image_name |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
119 ): |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
120 c = hga.aws_connection(aws_region) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
121 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
122 DIST_PATH.mkdir(exist_ok=True) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
123 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
124 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts: |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
125 instance = insts[0] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
126 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
127 winrm_client = instance.winrm_client |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
128 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
129 windows.synchronize_hg(SOURCE_ROOT, revision, instance) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
130 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
131 for arch in ('x86', 'x64'): |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
132 windows.purge_hg(winrm_client) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
133 windows.build_wheel(winrm_client, arch, DIST_PATH) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
134 windows.purge_hg(winrm_client) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
135 windows.build_inno_installer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
136 winrm_client, arch, DIST_PATH, version=version |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
137 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
138 windows.purge_hg(winrm_client) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
139 windows.build_wix_installer( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
140 winrm_client, arch, DIST_PATH, version=version |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
141 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
142 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
143 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
144 def terminate_ec2_instances(hga: HGAutomation, aws_region): |
42277
dd6a9723ae2b
automation: don't create resources when deleting things
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42024
diff
changeset
|
145 c = hga.aws_connection(aws_region, ensure_ec2_state=False) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
146 aws.terminate_ec2_instances(c.ec2resource) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
147 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
148 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
149 def purge_ec2_resources(hga: HGAutomation, aws_region): |
42277
dd6a9723ae2b
automation: don't create resources when deleting things
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42024
diff
changeset
|
150 c = hga.aws_connection(aws_region, ensure_ec2_state=False) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
151 aws.remove_resources(c) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
152 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
153 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
154 def run_tests_linux( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
155 hga: HGAutomation, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
156 aws_region, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
157 instance_type, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
158 python_version, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
159 test_flags, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
160 distro, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
161 filesystem, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
162 ): |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
163 c = hga.aws_connection(aws_region) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
164 image = aws.ensure_linux_dev_ami(c, distro=distro) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
165 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
166 t_start = time.time() |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
167 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
168 ensure_extra_volume = filesystem not in ('default', 'tmpfs') |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
169 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
170 with aws.temporary_linux_dev_instances( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
171 c, image, instance_type, ensure_extra_volume=ensure_extra_volume |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
172 ) as insts: |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
173 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
174 instance = insts[0] |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
175 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
176 linux.prepare_exec_environment( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
177 instance.ssh_client, filesystem=filesystem |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
178 ) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
179 linux.synchronize_hg(SOURCE_ROOT, instance, '.') |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
180 t_prepared = time.time() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
181 linux.run_tests(instance.ssh_client, python_version, test_flags) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
182 t_done = time.time() |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
183 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
184 t_setup = t_prepared - t_start |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
185 t_all = t_done - t_start |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
186 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
187 print( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
188 'total time: %.1fs; setup: %.1fs; tests: %.1fs; setup overhead: %.1f%%' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
189 % (t_all, t_setup, t_done - t_prepared, t_setup / t_all * 100.0) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
190 ) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
191 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
192 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
193 def run_tests_windows( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
194 hga: HGAutomation, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
195 aws_region, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
196 instance_type, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
197 python_version, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
198 arch, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
199 test_flags, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
200 base_image_name, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
201 ): |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
202 c = hga.aws_connection(aws_region) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
203 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
204 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
205 with aws.temporary_windows_dev_instances( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
206 c, image, instance_type, disable_antivirus=True |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
207 ) as insts: |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
208 instance = insts[0] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
209 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
210 windows.synchronize_hg(SOURCE_ROOT, '.', instance) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
211 windows.run_tests( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
212 instance.winrm_client, python_version, arch, test_flags |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
213 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
214 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
215 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
216 def publish_windows_artifacts( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
217 hg: HGAutomation, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
218 aws_region, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
219 version: str, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
220 pypi: bool, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
221 mercurial_scm_org: bool, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
222 ssh_username: str, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
223 ): |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
224 windows.publish_artifacts( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
225 DIST_PATH, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
226 version, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
227 pypi=pypi, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
228 mercurial_scm_org=mercurial_scm_org, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
229 ssh_username=ssh_username, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
230 ) |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
231 |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
232 |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
233 def run_try(hga: HGAutomation, aws_region: str, rev: str): |
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
234 c = hga.aws_connection(aws_region, ensure_ec2_state=False) |
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
235 try_server.trigger_try(c, rev=rev) |
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
236 |
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
237 |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
238 def get_parser(): |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
239 parser = argparse.ArgumentParser() |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
240 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
241 parser.add_argument( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
242 '--state-path', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
243 default='~/.hgautomation', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
244 help='Path for local state files', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
245 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
246 parser.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
247 '--aws-region', help='AWS region to use', default='us-west-2', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
248 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
249 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
250 subparsers = parser.add_subparsers() |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
251 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
252 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
253 'bootstrap-linux-dev', help='Bootstrap Linux development environments', |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
254 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
255 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
256 '--distros', help='Comma delimited list of distros to bootstrap', |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
257 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
258 sp.add_argument( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
259 '--parallel', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
260 action='store_true', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
261 help='Generate AMIs in parallel (not CTRL-c safe)', |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
262 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
263 sp.set_defaults(func=bootstrap_linux_dev) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
264 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
265 sp = subparsers.add_parser( |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
266 'bootstrap-windows-dev', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
267 help='Bootstrap the Windows development environment', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
268 ) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
269 sp.add_argument( |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
270 '--base-image-name', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
271 help='AMI name of base image', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
272 default=aws.WINDOWS_BASE_IMAGE_NAME, |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
273 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
274 sp.set_defaults(func=bootstrap_windows_dev) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
275 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
276 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
277 'build-all-windows-packages', help='Build all Windows packages', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
278 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
279 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
280 '--revision', help='Mercurial revision to build', default='.', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
281 ) |
42283
d137a3d5ad41
automation: add --version argument to build-all-windows-packages
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42277
diff
changeset
|
282 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
283 '--version', help='Mercurial version string to use', |
42283
d137a3d5ad41
automation: add --version argument to build-all-windows-packages
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42277
diff
changeset
|
284 ) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
285 sp.add_argument( |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
286 '--base-image-name', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
287 help='AMI name of base image', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
288 default=aws.WINDOWS_BASE_IMAGE_NAME, |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
289 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
290 sp.set_defaults(func=build_all_windows_packages) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
291 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
292 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
293 'build-inno', help='Build Inno Setup installer(s)', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
294 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
295 sp.add_argument( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
296 '--arch', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
297 help='Architecture to build for', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
298 choices={'x86', 'x64'}, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
299 nargs='*', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
300 default=['x64'], |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
301 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
302 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
303 '--revision', help='Mercurial revision to build', default='.', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
304 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
305 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
306 '--version', help='Mercurial version string to use in installer', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
307 ) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
308 sp.add_argument( |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
309 '--base-image-name', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
310 help='AMI name of base image', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
311 default=aws.WINDOWS_BASE_IMAGE_NAME, |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
312 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
313 sp.set_defaults(func=build_inno) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
314 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
315 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
316 'build-windows-wheel', help='Build Windows wheel(s)', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
317 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
318 sp.add_argument( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
319 '--arch', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
320 help='Architecture to build for', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
321 choices={'x86', 'x64'}, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
322 nargs='*', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
323 default=['x64'], |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
324 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
325 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
326 '--revision', help='Mercurial revision to build', default='.', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
327 ) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
328 sp.add_argument( |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
329 '--base-image-name', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
330 help='AMI name of base image', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
331 default=aws.WINDOWS_BASE_IMAGE_NAME, |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
332 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
333 sp.set_defaults(func=build_windows_wheel) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
334 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
335 sp = subparsers.add_parser('build-wix', help='Build WiX installer(s)') |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
336 sp.add_argument( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
337 '--arch', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
338 help='Architecture to build for', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
339 choices={'x86', 'x64'}, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
340 nargs='*', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
341 default=['x64'], |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
342 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
343 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
344 '--revision', help='Mercurial revision to build', default='.', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
345 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
346 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
347 '--version', help='Mercurial version string to use in installer', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
348 ) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
349 sp.add_argument( |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
350 '--base-image-name', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
351 help='AMI name of base image', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
352 default=aws.WINDOWS_BASE_IMAGE_NAME, |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
353 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
354 sp.set_defaults(func=build_wix) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
355 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
356 sp = subparsers.add_parser( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
357 'terminate-ec2-instances', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
358 help='Terminate all active EC2 instances managed by us', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
359 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
360 sp.set_defaults(func=terminate_ec2_instances) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
361 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
362 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
363 'purge-ec2-resources', help='Purge all EC2 resources managed by us', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
364 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
365 sp.set_defaults(func=purge_ec2_resources) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
366 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
367 sp = subparsers.add_parser('run-tests-linux', help='Run tests on Linux',) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
368 sp.add_argument( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
369 '--distro', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
370 help='Linux distribution to run tests on', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
371 choices=linux.DISTROS, |
43018
d1d919f679f7
automation: support and use Debian Buster by default
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42907
diff
changeset
|
372 default='debian10', |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
373 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
374 sp.add_argument( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
375 '--filesystem', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
376 help='Filesystem type to use', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
377 choices={'btrfs', 'default', 'ext3', 'ext4', 'jfs', 'tmpfs', 'xfs'}, |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
378 default='default', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
379 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
380 sp.add_argument( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
381 '--instance-type', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
382 help='EC2 instance type to use', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
383 default='c5.9xlarge', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
384 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
385 sp.add_argument( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
386 '--python-version', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
387 help='Python version to use', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
388 choices={ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
389 'system2', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
390 'system3', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
391 '2.7', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
392 '3.5', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
393 '3.6', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
394 '3.7', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
395 '3.8', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
396 'pypy', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
397 'pypy3.5', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
398 'pypy3.6', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
399 }, |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
400 default='system2', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
401 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
402 sp.add_argument( |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
403 'test_flags', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
404 help='Extra command line flags to pass to run-tests.py', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
405 nargs='*', |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
406 ) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
407 sp.set_defaults(func=run_tests_linux) |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
408 |
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42283
diff
changeset
|
409 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
410 'run-tests-windows', help='Run tests on Windows', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
411 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
412 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
413 '--instance-type', help='EC2 instance type to use', default='t3.medium', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
414 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
415 sp.add_argument( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
416 '--python-version', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
417 help='Python version to use', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
418 choices={'2.7', '3.5', '3.6', '3.7', '3.8'}, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
419 default='2.7', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
420 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
421 sp.add_argument( |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
422 '--arch', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
423 help='Architecture to test', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
424 choices={'x86', 'x64'}, |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
425 default='x64', |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
426 ) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
427 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
428 '--test-flags', help='Extra command line flags to pass to run-tests.py', |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
429 ) |
42648
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
430 sp.add_argument( |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
431 '--base-image-name', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
432 help='AMI name of base image', |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
433 default=aws.WINDOWS_BASE_IMAGE_NAME, |
d80edcb0b30c
automation: make Windows base image name configurable
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
434 ) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
435 sp.set_defaults(func=run_tests_windows) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
436 |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
437 sp = subparsers.add_parser( |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
438 'publish-windows-artifacts', |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
439 help='Publish built Windows artifacts (wheels, installers, etc)', |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
440 ) |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
441 sp.add_argument( |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
442 '--no-pypi', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
443 dest='pypi', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
444 action='store_false', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
445 default=True, |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
446 help='Skip uploading to PyPI', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
447 ) |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
448 sp.add_argument( |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
449 '--no-mercurial-scm-org', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
450 dest='mercurial_scm_org', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
451 action='store_false', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
452 default=True, |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
453 help='Skip uploading to www.mercurial-scm.org', |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
454 ) |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
455 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
456 '--ssh-username', help='SSH username for mercurial-scm.org', |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
457 ) |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
458 sp.add_argument( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
459 'version', help='Mercurial version string to locate local packages', |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
460 ) |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
461 sp.set_defaults(func=publish_windows_artifacts) |
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42648
diff
changeset
|
462 |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
463 sp = subparsers.add_parser( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
464 'try', help='Run CI automation against a custom changeset' |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
465 ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43057
diff
changeset
|
466 sp.add_argument('-r', '--rev', default='.', help='Revision to run CI on') |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
467 sp.set_defaults(func=run_try) |
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43055
diff
changeset
|
468 |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
469 return parser |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
470 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
471 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
472 def main(): |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
473 parser = get_parser() |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
474 args = parser.parse_args() |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
475 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
476 local_state_path = pathlib.Path(os.path.expanduser(args.state_path)) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
477 automation = HGAutomation(local_state_path) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
478 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
479 if not hasattr(args, 'func'): |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
480 parser.print_help() |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
481 return |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
482 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
483 kwargs = dict(vars(args)) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
484 del kwargs['func'] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
485 del kwargs['state_path'] |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
486 |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
487 args.func(automation, **kwargs) |