contrib/automation/hgautomation/cli.py
branchstable
changeset 44771 802ee93c205d
parent 44768 9d441f820c8b
child 44772 5e788dc7fb5d
equal deleted inserted replaced
44770:47609da15379 44771:802ee93c205d
    61     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
    61     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
    62     print('Windows development AMI available as %s' % image.id)
    62     print('Windows development AMI available as %s' % image.id)
    63 
    63 
    64 
    64 
    65 def build_inno(
    65 def build_inno(
    66     hga: HGAutomation, aws_region, arch, revision, version, base_image_name
    66     hga: HGAutomation,
       
    67     aws_region,
       
    68     python_version,
       
    69     arch,
       
    70     revision,
       
    71     version,
       
    72     base_image_name,
    67 ):
    73 ):
    68     c = hga.aws_connection(aws_region)
    74     c = hga.aws_connection(aws_region)
    69     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
    75     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
    70     DIST_PATH.mkdir(exist_ok=True)
    76     DIST_PATH.mkdir(exist_ok=True)
    71 
    77 
    72     with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts:
    78     with aws.temporary_windows_dev_instances(c, image, 't3.medium') as insts:
    73         instance = insts[0]
    79         instance = insts[0]
    74 
    80 
    75         windows.synchronize_hg(SOURCE_ROOT, revision, instance)
    81         windows.synchronize_hg(SOURCE_ROOT, revision, instance)
    76 
    82 
    77         for a in arch:
    83         for py_version in python_version:
    78             windows.build_inno_installer(
    84             for a in arch:
    79                 instance.winrm_client, a, DIST_PATH, version=version
    85                 windows.build_inno_installer(
    80             )
    86                     instance.winrm_client,
       
    87                     py_version,
       
    88                     a,
       
    89                     DIST_PATH,
       
    90                     version=version,
       
    91                 )
    81 
    92 
    82 
    93 
    83 def build_wix(
    94 def build_wix(
    84     hga: HGAutomation, aws_region, arch, revision, version, base_image_name
    95     hga: HGAutomation, aws_region, arch, revision, version, base_image_name
    85 ):
    96 ):
   144                     python_version=py_version,
   155                     python_version=py_version,
   145                     arch=arch,
   156                     arch=arch,
   146                     dest_path=DIST_PATH,
   157                     dest_path=DIST_PATH,
   147                 )
   158                 )
   148 
   159 
       
   160         for py_version in (2, 3):
       
   161             for arch in ('x86', 'x64'):
       
   162                 windows.purge_hg(winrm_client)
       
   163                 windows.build_inno_installer(
       
   164                     winrm_client, py_version, arch, DIST_PATH, version=version
       
   165                 )
       
   166 
   149         for arch in ('x86', 'x64'):
   167         for arch in ('x86', 'x64'):
   150             windows.purge_hg(winrm_client)
       
   151             windows.build_inno_installer(
       
   152                 winrm_client, arch, DIST_PATH, version=version
       
   153             )
       
   154             windows.purge_hg(winrm_client)
   168             windows.purge_hg(winrm_client)
   155             windows.build_wix_installer(
   169             windows.build_wix_installer(
   156                 winrm_client, arch, DIST_PATH, version=version
   170                 winrm_client, arch, DIST_PATH, version=version
   157             )
   171             )
   158 
   172 
   305     )
   319     )
   306     sp.set_defaults(func=build_all_windows_packages)
   320     sp.set_defaults(func=build_all_windows_packages)
   307 
   321 
   308     sp = subparsers.add_parser(
   322     sp = subparsers.add_parser(
   309         'build-inno', help='Build Inno Setup installer(s)',
   323         'build-inno', help='Build Inno Setup installer(s)',
       
   324     )
       
   325     sp.add_argument(
       
   326         '--python-version',
       
   327         help='Which version of Python to target',
       
   328         choices={2, 3},
       
   329         type=int,
       
   330         nargs='*',
       
   331         default=[3],
   310     )
   332     )
   311     sp.add_argument(
   333     sp.add_argument(
   312         '--arch',
   334         '--arch',
   313         help='Architecture to build for',
   335         help='Architecture to build for',
   314         choices={'x86', 'x64'},
   336         choices={'x86', 'x64'},