Backend/e-suite.WorkBench/azure-pipelines.yml
2026-01-20 21:50:10 +00:00

128 lines
5.2 KiB
YAML

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)$(postfix)$(branchName) # NOTE: rev resets when the default retention period expires
trigger:
branches:
include:
- '*'
pool:
vmImage: windows-latest # ubuntu-latest - set to windows-latest or another Windows vmImage for Windows builds
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
branchName: ''
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/heads/') }}:
branchName: $[ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), '/', '-' ) ]
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/pull/') }}:
branchName: $[ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), '/', '-' ) ]
${{ if eq(variables['branchName'], '') }}:
postfix: ''
${{ else }}:
postfix: '-'
steps:
- task: UseDotNet@2
displayName: 'Set .net core version'
inputs:
version: '6.0.x'
- task: PowerShell@2
displayName: 'Update Build Version Number'
inputs:
targetType: 'inline'
script: |
$VersionRegex = "\d+\.\d+\.\d+\.\d+"
$VersionData = [string]::Format("{0}",[regex]::matches($Env:BUILD_BUILDNUMBER,$VersionRegex)[0]).substring(2)
Write-Host "Versioning started"
"Sources directory " + $Env:BUILD_SOURCESDIRECTORY
"Build number " + $VersionData
$csprojfilename = $Env:BUILD_SOURCESDIRECTORY+"\eSuite.WorkBench\eSuite.WorkBench.csproj"
"Project file to update " + $csprojfilename
[xml]$csprojcontents = Get-Content -Path $csprojfilename;
"Current version number is " + $csprojcontents.Project.PropertyGroup.Version
$oldversionNumber = $csprojcontents.Project.PropertyGroup.Version
$csprojcontents.Project.PropertyGroup.Version = $VersionData
$csprojcontents.Save($csprojfilename)
"Version number has been udated from " + $oldversionNumber + " to " + $VersionData
Write-Host "Finished"
- task: DotNetCoreCLI@2
displayName: 'Nuget Restore'
inputs:
command: 'restore'
feedsToUse: config
projects: '**/*.csproj'
nugetConfigPath: nuget.config
- task: VSBuild@1
displayName: 'Build'
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
msbuildArgs: '/p:RunWixToolsOutOfProc=true'
- task: CopyFiles@2
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
sourceFolder: eSuite.WorkBench.Installer\bin\$(buildConfiguration)
contents: eSuite.WorkBench.Installer.msi
targetFolder: $(build.artifactstagingdirectory)
#cleanTargetFolder: false # Optional
#overWrite: false # Optional
#flattenFolders: false # Optional
#preserveTimestamp: false # Optional
#retryCount: 0 # Optional
#ignoreMakeDirErrors: false # Optional
- task: PublishBuildArtifacts@1
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
#pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'installer'
#publishLocation: 'Container' # Options: container, filePath
#targetPath: # Required when publishLocation == FilePath
#parallel: false # Optional
#parallelCount: # Optional
#fileCopyOptions: #Optional
#storeAsTar: false # Optional
#Disabling this as the universal packages are not straight forward to work with.
#- task: UniversalPackages@0
# displayName: 'Publish To artifacts feed'
# inputs:
# command: 'publish' # Options: download, publish
# #downloadDirectory: '$(System.DefaultWorkingDirectory)' # Required when command == Download
# feedsToUse: 'internal' # Options: internal, external
# #externalFeedCredentials: # Optional
# vstsFeed: 'e-suite/e-suite' # Required when feedsToUse == Internal
# #vstsFeedPackage: # Required when feedsToUse == Internal
# #vstsPackageVersion: # Required when feedsToUse == Internal
# #feedDownloadExternal: # Required when feedsToUse == External
# #packageDownloadExternal: # Required when feedsToUse == External
# #versionDownloadExternal: # Required when feedsToUse == External
# publishDirectory: '$(Build.ArtifactStagingDirectory)' # Required when command == Publish
# feedsToUsePublish: 'internal' # Options: internal, external
# #publishFeedCredentials: # Required when feedsToUsePublish == External
# vstsFeedPublish: 'e-suite/e-suite'# Required when feedsToUsePublish == Internal
# #publishPackageMetadata: true # Optional
# vstsFeedPackagePublish: 'e-suite.workbench' # Required when feedsToUsePublish == Internal
# #feedPublishExternal: # Required when feedsToUsePublish == External
# #packagePublishExternal: # Required when feedsToUsePublish == External
# #versionOption: 'patch' # Options: major, minor, patch, custom
# #versionPublish: # Required when versionOption == Custom
# packagePublishDescription: 'Easily choose and run your e-suite locally'
# #verbosity: 'None' # Options: none, trace, debug, information, warning, error, critical
# #publishedPackageVar: # Optional