diff --git a/tools/releaseBuild/azureDevOps/releasePipeline.yml b/tools/releaseBuild/azureDevOps/releasePipeline.yml index 7abb9792fe..d68f7bbb62 100644 --- a/tools/releaseBuild/azureDevOps/releasePipeline.yml +++ b/tools/releaseBuild/azureDevOps/releasePipeline.yml @@ -231,11 +231,32 @@ stages: dependsOn: - PublishPackages - ChangesToMaster + variables: + # adds newPwshOrgName (exists in new and old org) + - group: PowerShellRelease jobs: - - deployment: ReleaseSnap - displayName: Release Snap - pool: server - environment: PSReleaseSnapRelease + - template: templates/release/approvalJob.yml + parameters: + displayName: Start the release build + instructions: | + Start the snap pipeline at: https://dev.azure.com/$(newPwshOrgName)/PowerShell/_build?definitionId=49&_a=summary + - template: templates/release/approvalJob.yml + parameters: + displayName: Approve the release + instructions: | + Once the build is finished, approve the release of all channels. + +- stage: ReleaseToMU + displayName: Release to MU + dependsOn: + - PublishPackages + - ChangesToMaster + jobs: + - template: templates/release/approvalJob.yml + parameters: + displayName: Release to MU + instructions: | + Notify the PM team to start the process of releasing to MU. - stage: UpdateDotnetDocker dependsOn: GitHubManualTasks diff --git a/tools/releaseBuild/azureDevOps/templates/release/approvalJob.yml b/tools/releaseBuild/azureDevOps/templates/release/approvalJob.yml new file mode 100644 index 0000000000..8404e64e0e --- /dev/null +++ b/tools/releaseBuild/azureDevOps/templates/release/approvalJob.yml @@ -0,0 +1,31 @@ +parameters: + - name: displayName + type: string + - name: instructions + type: string + - name: jobName + type: string + default: approval + - name: timeoutInMinutes + type: number + # 2 days + default: 2880 + - name: onTimeout + type: string + default: 'reject' + values: + - resume + - reject + +jobs: + - job: ${{ parameters.jobName }} + displayName: ${{ parameters.displayName }} + pool: server + timeoutInMinutes: 4320 # job times out in 3 days + steps: + - task: ManualValidation@0 + displayName: ${{ parameters.displayName }} + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + inputs: + instructions: ${{ parameters.instructions }} + onTimeout: ${{ parameters.onTimeout }}