ServerManagers/.azure/pipelines/azure-pipelines.yml
2022-12-23 13:53:23 +10:00

123 lines
3.5 KiB
YAML

name: $(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)
trigger:
branches:
include:
- source
paths:
include:
- src
pool:
# vmImage: windows-latest
demands: InnoSetup
resources:
repositories:
- repository: MasterRepo
type: $(Build.Repository.Provider)
endpoint: $(RepositoryEndPoint)
name: $(Build.Repository.Name)
ref: refs/heads/master
variables:
- name: ApplicationName
value: $(Build.DefinitionName)
- name: SolutionFile
value: 'src/Server-Managers.sln'
- name: ProjectFile
value: 'src/$(ApplicationName)/$(ApplicationName).csproj'
- name: PublishFolder
value: publish
stages:
- template: azure-pipelines-build.yml@self
parameters:
ApplicationName: $(ApplicationName)
SolutionFile: $(SolutionFile)
ProjectFile: $(ProjectFile)
PublishFolder: $(PublishFolder)
- stage: deployBeta
displayName: Beta
lockBehavior: runLatest
condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/source'))
dependsOn:
- build
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: ${{parameters.PublishFolder}}
- task: PowerShell@2
displayName: Output Environment Variables
condition: contains(variables['system.debug'], 'true')
inputs:
targetType: inline
script: '(gci env:*).GetEnumerator() | Sort-Object Name | Out-String'
pwsh: true
- checkout: MasterRepo
- template: azure-pipelines-clean-agent.yml@self
parameters:
CleanArtifactsFolder: true
CleanBinariesFolder: true
CleanSourcesFolder: true
CleanPublishFolder: true
PublishFolder: ${{parameters.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: ${{parameters.PublishFolder}}
- task: PowerShell@2
displayName: Output Environment Variables
condition: contains(variables['system.debug'], 'true')
inputs:
targetType: inline
script: '(gci env:*).GetEnumerator() | Sort-Object Name | Out-String'
pwsh: true
- checkout: MasterRepo
- template: azure-pipelines-clean-agent.yml@self
parameters:
CleanArtifactsFolder: true
CleanBinariesFolder: true
CleanSourcesFolder: true
CleanPublishFolder: true
PublishFolder: ${{parameters.PublishFolder}}