90 version=version, |
90 version=version, |
91 ) |
91 ) |
92 |
92 |
93 |
93 |
94 def build_wix( |
94 def build_wix( |
95 hga: HGAutomation, aws_region, arch, revision, version, base_image_name |
95 hga: HGAutomation, |
|
96 aws_region, |
|
97 python_version, |
|
98 arch, |
|
99 revision, |
|
100 version, |
|
101 base_image_name, |
96 ): |
102 ): |
97 c = hga.aws_connection(aws_region) |
103 c = hga.aws_connection(aws_region) |
98 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
104 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name) |
99 DIST_PATH.mkdir(exist_ok=True) |
105 DIST_PATH.mkdir(exist_ok=True) |
100 |
106 |
101 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts: |
107 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts: |
102 instance = insts[0] |
108 instance = insts[0] |
103 |
109 |
104 windows.synchronize_hg(SOURCE_ROOT, revision, instance) |
110 windows.synchronize_hg(SOURCE_ROOT, revision, instance) |
105 |
111 |
106 for a in arch: |
112 for py_version in python_version: |
107 windows.build_wix_installer( |
113 for a in arch: |
108 instance.winrm_client, a, DIST_PATH, version=version |
114 windows.build_wix_installer( |
109 ) |
115 instance.winrm_client, |
|
116 py_version, |
|
117 a, |
|
118 DIST_PATH, |
|
119 version=version, |
|
120 ) |
110 |
121 |
111 |
122 |
112 def build_windows_wheel( |
123 def build_windows_wheel( |
113 hga: HGAutomation, |
124 hga: HGAutomation, |
114 aws_region, |
125 aws_region, |
161 for arch in ('x86', 'x64'): |
172 for arch in ('x86', 'x64'): |
162 windows.purge_hg(winrm_client) |
173 windows.purge_hg(winrm_client) |
163 windows.build_inno_installer( |
174 windows.build_inno_installer( |
164 winrm_client, py_version, arch, DIST_PATH, version=version |
175 winrm_client, py_version, arch, DIST_PATH, version=version |
165 ) |
176 ) |
166 |
177 windows.build_wix_installer( |
167 for arch in ('x86', 'x64'): |
178 winrm_client, py_version, arch, DIST_PATH, version=version |
168 windows.purge_hg(winrm_client) |
179 ) |
169 windows.build_wix_installer( |
|
170 winrm_client, arch, DIST_PATH, version=version |
|
171 ) |
|
172 |
180 |
173 |
181 |
174 def terminate_ec2_instances(hga: HGAutomation, aws_region): |
182 def terminate_ec2_instances(hga: HGAutomation, aws_region): |
175 c = hga.aws_connection(aws_region, ensure_ec2_state=False) |
183 c = hga.aws_connection(aws_region, ensure_ec2_state=False) |
176 aws.terminate_ec2_instances(c.ec2resource) |
184 aws.terminate_ec2_instances(c.ec2resource) |
376 default=aws.WINDOWS_BASE_IMAGE_NAME, |
384 default=aws.WINDOWS_BASE_IMAGE_NAME, |
377 ) |
385 ) |
378 sp.set_defaults(func=build_windows_wheel) |
386 sp.set_defaults(func=build_windows_wheel) |
379 |
387 |
380 sp = subparsers.add_parser('build-wix', help='Build WiX installer(s)') |
388 sp = subparsers.add_parser('build-wix', help='Build WiX installer(s)') |
|
389 sp.add_argument( |
|
390 '--python-version', |
|
391 help='Which version of Python to target', |
|
392 choices={2, 3}, |
|
393 type=int, |
|
394 nargs='*', |
|
395 default=[3], |
|
396 ) |
381 sp.add_argument( |
397 sp.add_argument( |
382 '--arch', |
398 '--arch', |
383 help='Architecture to build for', |
399 help='Architecture to build for', |
384 choices={'x86', 'x64'}, |
400 choices={'x86', 'x64'}, |
385 nargs='*', |
401 nargs='*', |