ServerManagers/.azure/pipelines/azure-pipelines.yml
2022-12-23 14:12:09 +10:00

111 lines
2.9 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: GitHub
endpoint: Bletch1971
name: Bletch1971/ServerManagers
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: $(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)