Skip to content

Commit c448360

Browse files
committed
Added azure pipeline.
1 parent 3e68e40 commit c448360

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed

azure-pipelines.yml

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
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

Comments
 (0)