tools/build-arm.py (22 lines of code) (raw):

# ------------------------------------ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ import os import shutil import subprocess from pathlib import Path repository_root = Path(__file__).resolve().parent.parent environments_path = repository_root / 'Environments' environments = [] print('Building ARM templates from bicep files...') # walk the Environments directory and find all the child directories for dirpath, dirnames, files in os.walk(environments_path): # os.walk includes the root directory (i.e. repo/Environments) so we need to skip it if not environments_path.samefile(dirpath) and Path(dirpath).parent.samefile(environments_path): environments.append(Path(dirpath)) # image_names.append(Path(dirpath).name) # get the full path to the git executable git = shutil.which('git') for environment in environments: print(f' Ensuring: {environment}/azuredeploy.json') if not (environment / 'azuredeploy.json').exists(): # if the azuredeploy.json file doesn't exist, create it (environment / 'azuredeploy.json').touch() # run the git command to add the azuredeploy.json file subprocess.run([git, 'add', environment / 'azuredeploy.json']) # get the full path to the azure cli executable az = shutil.which('az') for environment in environments: print(f' Compiling template: {environment}') # run the azure cli command to compile the template subprocess.run([az, 'bicep', 'build', '--file', environment / 'main.bicep', '--outfile', environment / 'azuredeploy.json']) print('Done')