1
+ variables :
2
+ buildConfiguration : Release
3
+ stages :
4
+ - stage : Unit_Tests
5
+ displayName : Unit Tests
6
+ dependsOn : []
7
+ jobs :
8
+ - job : Linux_Unit_Tests
9
+ displayName : Linux
10
+ pool :
11
+ vmImage : ubuntu-latest
12
+ steps :
13
+ - task : NuGetAuthenticate@0
14
+ displayName : NuGet Authenticate
15
+ - task : UseDotNet@2
16
+ displayName : Use .Net Core SDK 5.x
17
+ inputs :
18
+ version : 5.x
19
+ - task : DotNetCoreCLI@2
20
+ displayName : dotnet test
21
+ inputs :
22
+ command : test
23
+ projects : ' **/*.Tests.csproj'
24
+ - job : MacOS_Unit_Tests
25
+ displayName : Mac OS
26
+ pool :
27
+ vmImage : macOS-latest
28
+ steps :
29
+ - task : NuGetAuthenticate@0
30
+ displayName : NuGet Authenticate
31
+ - task : UseDotNet@2
32
+ displayName : Use .Net Core SDK 5.x
33
+ inputs :
34
+ version : 5.x
35
+ - task : DotNetCoreCLI@2
36
+ displayName : dotnet test
37
+ inputs :
38
+ command : test
39
+ projects : ' **/*.Tests.csproj'
40
+ - job : Windows_Unit_Tests
41
+ displayName : Windows
42
+ pool :
43
+ vmImage : windows-latest
44
+ steps :
45
+ - task : NuGetAuthenticate@0
46
+ displayName : NuGet Authenticate
47
+ - task : UseDotNet@2
48
+ displayName : Use .Net Core SDK 5.x
49
+ inputs :
50
+ version : 5.x
51
+ - task : DotNetCoreCLI@2
52
+ displayName : dotnet test
53
+ inputs :
54
+ command : test
55
+ projects : ' **/*.Tests.csproj'
56
+ - stage : Artifacts
57
+ dependsOn : []
58
+ jobs :
59
+ - job : Build_Artifacts
60
+ displayName : Build Artifacts
61
+ pool :
62
+ vmImage : windows-latest
63
+ steps :
64
+ - task : UseDotNet@2
65
+ displayName : Use .Net Core SDK 5.x
66
+ inputs :
67
+ version : 5.x
68
+ - task : NuGetAuthenticate@0
69
+ displayName : NuGet Authenticate
70
+ - task : NuGetToolInstaller@1
71
+ displayName : Use NuGet Latest
72
+ - task : NuGetCommand@2
73
+ displayName : Restore NuGet Packages
74
+ inputs :
75
+ restoreSolution : ' *\src\Umbraco.Deploy.Contrib.sln'
76
+ feedsToUse : config
77
+ - task : PowerShell@1
78
+ displayName : Update Version and Artifact Name
79
+ inputs :
80
+ scriptType : inlineScript
81
+ inlineScript : >
82
+ Write-Host "Working folder: $pwd"
83
+
84
+ $ubuild = build/build.ps1 -get -continue
85
+
86
+
87
+ $version = $ubuild.GetUmbracoVersion()
88
+
89
+ $isRelease = [regex]::matches($env:BUILD_SOURCEBRANCH,"v\d+\/\d+.\d+.*")
90
+
91
+
92
+ if ($isRelease.Count -gt 0){
93
+ $continuous = $version.Semver
94
+ Write-Host "##vso[build.addbuildtag]Release build"
95
+ }
96
+ else
97
+ {
98
+ $date = (Get-Date).ToString("yyyyMMdd")
99
+ $continuous = "$($version.release)-preview$date.$(Build.BuildId)"
100
+ $ubuild.SetUmbracoVersion($continuous)
101
+
102
+ Write-Host "##vso[build.addbuildtag]Continuous build"
103
+ }
104
+
105
+ Write-Host "##vso[build.updatebuildnumber]$continuous.$(Build.BuildId)"
106
+
107
+ Write-Host "Building: $continuous"
108
+ - task : PowerShell@1
109
+ displayName : Prepare Build
110
+ inputs :
111
+ scriptType : inlineScript
112
+ inlineScript : |
113
+ Write-Host "Working folder: $pwd"
114
+ $ubuild = build\build.ps1 -get
115
+
116
+ $ubuild.PrepareBuild("vso")
117
+ - task : PowerShell@1
118
+ displayName : Prepare Packages
119
+ inputs :
120
+ scriptType : inlineScript
121
+ inlineScript : |
122
+ Write-Host "Working folder: $pwd"
123
+ $ubuild = build\build.ps1 -get -continue
124
+
125
+ $ubuild.CompileUmbracoDeployContrib()
126
+ - task : PowerShell@1
127
+ displayName : Package NuGet
128
+ inputs :
129
+ scriptType : inlineScript
130
+ inlineScript : |
131
+ Write-Host "Working folder: $pwd"
132
+ $ubuild = build\build.ps1 -get -continue
133
+
134
+ $ubuild.PackageNuGet()
135
+ - task : CopyFiles@2
136
+ displayName : Copy NuPkg Files to Staging
137
+ inputs :
138
+ SourceFolder : build.out
139
+ Contents : ' *.nupkg'
140
+ TargetFolder : $(build.artifactstagingdirectory)
141
+ CleanTargetFolder : true
142
+ - task : PublishBuildArtifacts@1
143
+ displayName : Publish NuPkg Files
144
+ inputs :
145
+ PathtoPublish : $(build.artifactstagingdirectory)
146
+ ArtifactName : nupkg
147
+ - task : CopyFiles@2
148
+ displayName : Copy Log Files to Staging
149
+ inputs :
150
+ SourceFolder : build.tmp
151
+ Contents : ' *.log'
152
+ TargetFolder : $(build.artifactstagingdirectory)
153
+ CleanTargetFolder : true
154
+ condition : succeededOrFailed()
155
+ - task : PublishBuildArtifacts@1
156
+ displayName : Publish Log Files
157
+ inputs :
158
+ PathtoPublish : $(build.artifactstagingdirectory)
159
+ ArtifactName : logs
160
+ condition : succeededOrFailed()
0 commit comments