new deployment script

This commit is contained in:
Brett Hewitson 2022-12-23 14:35:25 +10:00
parent 50bbebe9ec
commit 99e66f68ba
2 changed files with 73 additions and 70 deletions

View file

@ -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)

View file

@ -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)