From 99e66f68bacec492a85456914e3938924b129238 Mon Sep 17 00:00:00 2001 From: Brett Hewitson Date: Fri, 23 Dec 2022 14:35:25 +1000 Subject: [PATCH] new deployment script --- .azure/pipelines/azure-pipelines-deploy.yml | 61 +++++++++++++++ .azure/pipelines/azure-pipelines.yml | 82 +++------------------ 2 files changed, 73 insertions(+), 70 deletions(-) create mode 100644 .azure/pipelines/azure-pipelines-deploy.yml diff --git a/.azure/pipelines/azure-pipelines-deploy.yml b/.azure/pipelines/azure-pipelines-deploy.yml new file mode 100644 index 00000000..4d3021b2 --- /dev/null +++ b/.azure/pipelines/azure-pipelines-deploy.yml @@ -0,0 +1,61 @@ +parameters: +- name: DeploymentType + displayName: Type of Deployment Stage + type: string + values: + - Beta + - Production +- name: DependsOn + displayName: Depends On + type: string +- name: ApplicationName + type: string +- name: PublishFolder + type: string + +stages: +- stage: deploy${{parameters.DeploymentType}} + displayName: ${{parameters.DeploymentType}} + lockBehavior: runLatest + condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/source')) + dependsOn: + - build + - ${{ if ne(parameters.DependsOn, 'build') }}: + - deploy${{parameters.DependsOn}} + + jobs: + - deployment: deploy${{parameters.DeploymentType}} + displayName: Deploy ${{parameters.DeploymentType}} + environment: github-servermanager-${{ lower(parameters.DeploymentType) }} + + strategy: + runOnce: + deploy: + steps: + - template: azure-pipelines-clean-agent.yml@self + parameters: + CleanArtifactsFolder: true + CleanBinariesFolder: true + CleanSourcesFolder: true + CleanPublishFolder: false + PublishFolder: $(PublishFolder) + + - template: output-environment-variables.yml@self + + - checkout: MasterRepo + + - task: PowerShell@2 + displayName: Display DeploymentType + inputs: + targetType: inline + script: | + Write-Host ${{parameters.DeploymentType}} + pwsh: true + + - template: azure-pipelines-clean-agent.yml@self + parameters: + CleanArtifactsFolder: true + CleanBinariesFolder: true + CleanSourcesFolder: true + CleanPublishFolder: true + PublishFolder: $(PublishFolder) diff --git a/.azure/pipelines/azure-pipelines.yml b/.azure/pipelines/azure-pipelines.yml index 28de510a..166c6297 100644 --- a/.azure/pipelines/azure-pipelines.yml +++ b/.azure/pipelines/azure-pipelines.yml @@ -38,74 +38,16 @@ stages: ProjectFile: $(ProjectFile) PublishFolder: $(PublishFolder) -- stage: deployBeta - displayName: Beta - lockBehavior: runLatest - condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/source')) - dependsOn: - - build +- template: azure-pipelines-deploy.yml@self + parameters: + DeploymentName: Beta + DependsOn: build + ApplicationName: $(ApplicationName) + PublishFolder: $(PublishFolder) - jobs: - - deployment: deployBeta - displayName: Deploy Beta - environment: github-servermanager-beta - - strategy: - runOnce: - deploy: - steps: - - template: azure-pipelines-clean-agent.yml@self - parameters: - CleanArtifactsFolder: true - CleanBinariesFolder: true - CleanSourcesFolder: true - CleanPublishFolder: false - PublishFolder: $(PublishFolder) - - - template: output-environment-variables.yml@self - - - checkout: MasterRepo - - - template: azure-pipelines-clean-agent.yml@self - parameters: - CleanArtifactsFolder: true - CleanBinariesFolder: true - CleanSourcesFolder: true - CleanPublishFolder: true - PublishFolder: $(PublishFolder) - -- stage: deployRelease - displayName: Production - lockBehavior: runLatest - condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/source')) - dependsOn: - - deployBeta - - jobs: - - deployment: deployRelease - displayName: Deploy Production - environment: github-servermanager-release - - strategy: - runOnce: - deploy: - steps: - - template: azure-pipelines-clean-agent.yml@self - parameters: - CleanArtifactsFolder: true - CleanBinariesFolder: true - CleanSourcesFolder: true - CleanPublishFolder: false - PublishFolder: $(PublishFolder) - - - template: output-environment-variables.yml@self - - - checkout: MasterRepo - - - template: azure-pipelines-clean-agent.yml@self - parameters: - CleanArtifactsFolder: true - CleanBinariesFolder: true - CleanSourcesFolder: true - CleanPublishFolder: true - PublishFolder: $(PublishFolder) +- template: azure-pipelines-deploy.yml@self + parameters: + DeploymentName: Production + DependsOn: Beta + ApplicationName: $(ApplicationName) + PublishFolder: $(PublishFolder)