##// END OF EJS Templates
automation: make Windows base image name configurable...
Gregory Szorc -
r42871:d80edcb0 stable
parent child Browse files
Show More
@@ -1032,7 +1032,8 def temporary_linux_dev_instances(c: AWS
1032 1032 instance.ssh_client.close()
1033 1033
1034 1034
1035 def ensure_windows_dev_ami(c: AWSConnection, prefix='hg-'):
1035 def ensure_windows_dev_ami(c: AWSConnection, prefix='hg-',
1036 base_image_name=WINDOWS_BASE_IMAGE_NAME):
1036 1037 """Ensure Windows Development AMI is available and up-to-date.
1037 1038
1038 1039 If necessary, a modern AMI will be built by starting a temporary EC2
@@ -1050,7 +1051,7 def ensure_windows_dev_ami(c: AWSConnect
1050 1051
1051 1052 name = '%s%s' % (prefix, 'windows-dev')
1052 1053
1053 image = find_image(ec2resource, AMAZON_ACCOUNT_ID, WINDOWS_BASE_IMAGE_NAME)
1054 image = find_image(ec2resource, AMAZON_ACCOUNT_ID, base_image_name)
1054 1055
1055 1056 config = {
1056 1057 'BlockDeviceMappings': [
@@ -1103,6 +1104,7 def ensure_windows_dev_ami(c: AWSConnect
1103 1104 'user_data': WINDOWS_USER_DATA,
1104 1105 'initial_bootstrap': WINDOWS_BOOTSTRAP_POWERSHELL,
1105 1106 'bootstrap_commands': commands,
1107 'base_image_name': base_image_name,
1106 1108 })
1107 1109
1108 1110 existing_image = find_and_reconcile_image(ec2resource, name, fingerprint)
@@ -52,15 +52,16 def bootstrap_linux_dev(hga: HGAutomatio
52 52 aws.ensure_linux_dev_ami(c, distro=distro)
53 53
54 54
55 def bootstrap_windows_dev(hga: HGAutomation, aws_region):
55 def bootstrap_windows_dev(hga: HGAutomation, aws_region, base_image_name):
56 56 c = hga.aws_connection(aws_region)
57 image = aws.ensure_windows_dev_ami(c)
57 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
58 58 print('Windows development AMI available as %s' % image.id)
59 59
60 60
61 def build_inno(hga: HGAutomation, aws_region, arch, revision, version):
61 def build_inno(hga: HGAutomation, aws_region, arch, revision, version,
62 base_image_name):
62 63 c = hga.aws_connection(aws_region)
63 image = aws.ensure_windows_dev_ami(c)
64 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
64 65 DIST_PATH.mkdir(exist_ok=True)
65 66
66 67 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts:
@@ -74,9 +75,10 def build_inno(hga: HGAutomation, aws_re
74 75 version=version)
75 76
76 77
77 def build_wix(hga: HGAutomation, aws_region, arch, revision, version):
78 def build_wix(hga: HGAutomation, aws_region, arch, revision, version,
79 base_image_name):
78 80 c = hga.aws_connection(aws_region)
79 image = aws.ensure_windows_dev_ami(c)
81 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
80 82 DIST_PATH.mkdir(exist_ok=True)
81 83
82 84 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts:
@@ -89,9 +91,10 def build_wix(hga: HGAutomation, aws_reg
89 91 DIST_PATH, version=version)
90 92
91 93
92 def build_windows_wheel(hga: HGAutomation, aws_region, arch, revision):
94 def build_windows_wheel(hga: HGAutomation, aws_region, arch, revision,
95 base_image_name):
93 96 c = hga.aws_connection(aws_region)
94 image = aws.ensure_windows_dev_ami(c)
97 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
95 98 DIST_PATH.mkdir(exist_ok=True)
96 99
97 100 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts:
@@ -104,9 +107,9 def build_windows_wheel(hga: HGAutomatio
104 107
105 108
106 109 def build_all_windows_packages(hga: HGAutomation, aws_region, revision,
107 version):
110 version, base_image_name):
108 111 c = hga.aws_connection(aws_region)
109 image = aws.ensure_windows_dev_ami(c)
112 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
110 113 DIST_PATH.mkdir(exist_ok=True)
111 114
112 115 with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts:
@@ -169,9 +172,9 def run_tests_linux(hga: HGAutomation, a
169 172
170 173
171 174 def run_tests_windows(hga: HGAutomation, aws_region, instance_type,
172 python_version, arch, test_flags):
175 python_version, arch, test_flags, base_image_name):
173 176 c = hga.aws_connection(aws_region)
174 image = aws.ensure_windows_dev_ami(c)
177 image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
175 178
176 179 with aws.temporary_windows_dev_instances(c, image, instance_type,
177 180 disable_antivirus=True) as insts:
@@ -217,6 +220,11 def get_parser():
217 220 'bootstrap-windows-dev',
218 221 help='Bootstrap the Windows development environment',
219 222 )
223 sp.add_argument(
224 '--base-image-name',
225 help='AMI name of base image',
226 default=aws.WINDOWS_BASE_IMAGE_NAME,
227 )
220 228 sp.set_defaults(func=bootstrap_windows_dev)
221 229
222 230 sp = subparsers.add_parser(
@@ -232,6 +240,11 def get_parser():
232 240 '--version',
233 241 help='Mercurial version string to use',
234 242 )
243 sp.add_argument(
244 '--base-image-name',
245 help='AMI name of base image',
246 default=aws.WINDOWS_BASE_IMAGE_NAME,
247 )
235 248 sp.set_defaults(func=build_all_windows_packages)
236 249
237 250 sp = subparsers.add_parser(
@@ -254,6 +267,11 def get_parser():
254 267 '--version',
255 268 help='Mercurial version string to use in installer',
256 269 )
270 sp.add_argument(
271 '--base-image-name',
272 help='AMI name of base image',
273 default=aws.WINDOWS_BASE_IMAGE_NAME,
274 )
257 275 sp.set_defaults(func=build_inno)
258 276
259 277 sp = subparsers.add_parser(
@@ -272,6 +290,11 def get_parser():
272 290 help='Mercurial revision to build',
273 291 default='.',
274 292 )
293 sp.add_argument(
294 '--base-image-name',
295 help='AMI name of base image',
296 default=aws.WINDOWS_BASE_IMAGE_NAME,
297 )
275 298 sp.set_defaults(func=build_windows_wheel)
276 299
277 300 sp = subparsers.add_parser(
@@ -294,6 +317,11 def get_parser():
294 317 '--version',
295 318 help='Mercurial version string to use in installer',
296 319 )
320 sp.add_argument(
321 '--base-image-name',
322 help='AMI name of base image',
323 default=aws.WINDOWS_BASE_IMAGE_NAME,
324 )
297 325 sp.set_defaults(func=build_wix)
298 326
299 327 sp = subparsers.add_parser(
@@ -368,6 +396,11 def get_parser():
368 396 '--test-flags',
369 397 help='Extra command line flags to pass to run-tests.py',
370 398 )
399 sp.add_argument(
400 '--base-image-name',
401 help='AMI name of base image',
402 default=aws.WINDOWS_BASE_IMAGE_NAME,
403 )
371 404 sp.set_defaults(func=run_tests_windows)
372 405
373 406 return parser
General Comments 0
You need to be logged in to leave comments. Login now