alz/azuredevops/pipelines/bicep/templates/cd-template.yaml (115 lines of code) (raw):

--- parameters: - name: skipWhatIf type: boolean default: false - name: destroy type: boolean default: false %{ for script_file in script_files ~} - name: ${script_file.name} type: boolean default: true %{ endfor ~} stages: - stage: whatif displayName: What If condition: eq($${{ parameters.skipWhatIf }}, false) variables: - group: ${variable_group_name} - name: parametersFileName value: parameters.json jobs: - deployment: whatif displayName: What If with Bicep pool: ${agent_pool_configuration} environment: ${environment_name_plan} timeoutInMinutes: 0 strategy: runOnce: deploy: steps: - checkout: self displayName: Checkout Bicep Module - template: helpers/bicep-variables.yaml parameters: parametersFileName: $(parametersFileName) %{ for on_demand_folder in on_demand_folders ~} - template: helpers/bicep-on-demand-folder.yaml parameters: repository: "${on_demand_folder_repository}" releaseArtifactName: "${on_demand_folder_artifact_name}" releaseVersion: "$(RELEASE_VERSION)" sourcePath: "${on_demand_folder.source}" targetPath: "${on_demand_folder.target}" %{ endfor ~} - $${{ if eq(parameters.destroy, false) }}: - template: helpers/bicep-installer.yaml parameters: serviceConnection: '${service_connection_name_plan}' - template: helpers/bicep-templates.yaml parameters: serviceConnection: '${service_connection_name_plan}' %{ for script_file in script_files ~} ${script_file.name}: $${{ parameters.${script_file.name} }} %{ endfor ~} - $${{ if eq(parameters.destroy, true) }}: - template: helpers/bicep-installer.yaml parameters: serviceConnection: '${service_connection_name_plan}' - template: helpers/bicep-destroy.yaml parameters: serviceConnection: '${service_connection_name_plan}' - stage: deploy displayName: Deploy dependsOn: whatif condition: not(or(failed(), canceled())) variables: - group: ${variable_group_name} - name: parametersFileName value: parameters.json jobs: - deployment: deploy displayName: Deploy with Bicep pool: ${agent_pool_configuration} environment: ${environment_name_apply} timeoutInMinutes: 0 strategy: runOnce: deploy: steps: - checkout: self displayName: Checkout Bicep Module - template: helpers/bicep-variables.yaml parameters: parametersFileName: $(parametersFileName) %{ for on_demand_folder in on_demand_folders ~} - template: helpers/bicep-on-demand-folder.yaml parameters: repository: "${on_demand_folder_repository}" releaseArtifactName: "${on_demand_folder_artifact_name}" releaseVersion: "$(RELEASE_VERSION)" sourcePath: "${on_demand_folder.source}" targetPath: "${on_demand_folder.target}" %{ endfor ~} - $${{ if eq(parameters.destroy, false) }}: - template: helpers/bicep-installer.yaml parameters: serviceConnection: '${service_connection_name_apply}' - template: helpers/bicep-templates.yaml parameters: serviceConnection: '${service_connection_name_apply}' whatIfEnabled: false %{ for script_file in script_files ~} ${script_file.name}: $${{ parameters.${script_file.name} }} %{ endfor ~} - $${{ if eq(parameters.destroy, true) }}: - template: helpers/bicep-installer.yaml parameters: serviceConnection: '${service_connection_name_apply}' - template: helpers/bicep-destroy.yaml parameters: serviceConnection: '${service_connection_name_apply}' whatIfEnabled: false