128 lines
5.2 KiB
YAML
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 |