@@ -14,11 +14,13 @@ resources:
1414 containers :
1515 - container : xenial
1616 image : andrewarnott/linux-buildagent
17- - container : bionic
17+ - container : bionic-2.1
1818 image : microsoft/dotnet:2.1-sdk-bionic
19- - container : bionic-3.0
20- image : mcr.microsoft.com/dotnet/core/sdk:3.0-bionic
21- - container : disco
19+ - container : bionic
20+ image : mcr.microsoft.com/dotnet/core/sdk:3.1-bionic
21+ - container : focal
22+ image : mcr.microsoft.com/dotnet/core/sdk:3.1-focal
23+ - container : disco-3.0
2224 image : mcr.microsoft.com/dotnet/core/sdk:3.0-disco
2325 - container : archlinux
2426 image : andrewarnott/archlinux
@@ -32,10 +34,20 @@ variables:
3234stages :
3335- stage : Build
3436 jobs :
35- - job : Windows
36- pool : Hosted Windows 2019 with VS2019
37+ - job : Build
38+ strategy :
39+ matrix :
40+ linux :
41+ imageName : ' ubuntu-20.04'
42+ testModifier : -f netcoreapp3.1
43+ windows :
44+ imageName : ' windows-2019'
45+ testModifier :
3746 variables :
38- - group : dotnetfoundation code signing
47+ - ${{ if eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/') }} :
48+ - group : dotnetfoundation code signing
49+ pool :
50+ vmImage : $(imageName)
3951 steps :
4052 - checkout : self
4153 clean : true
@@ -53,9 +65,9 @@ stages:
5365 - script : dotnet --info
5466 displayName : Show dotnet SDK info
5567
56- - script : |
68+ - pwsh : |
5769 dotnet tool install --tool-path . nbgv
58- .\ nbgv cloud -a
70+ ./ nbgv cloud -a
5971 displayName: Set build number
6072
6173 - task : DotNetCoreCLI@2
@@ -68,27 +80,27 @@ stages:
6880 nugetConfigPath : src/nuget.config
6981 workingDirectory : src
7082
71- - task : geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task. YarnInstaller@2
83+ - task : YarnInstaller@3
7284 displayName : ' Use Yarn 1.x'
73- - task : geeklearningio.gl-vsts-tasks-yarn.yarn-task. Yarn@2
85+ - task : Yarn@3
7486 displayName : ' Yarn install'
7587 inputs :
76- ProjectDirectory : ' src/nerdbank-gitversioning.npm'
88+ projectDirectory : ' src/nerdbank-gitversioning.npm'
7789
7890 - script : dotnet build -c $(BuildConfiguration) --no-restore /t:build,pack /bl:"$(Build.ArtifactStagingDirectory)/build_logs/msbuild.binlog"
7991 displayName : Build NuGet package and tests
8092 workingDirectory : src
8193
82- - script : dotnet publish -c $(BuildConfiguration) -o ..\ nerdbank-gitversioning.npm\ out\ nbgv.cli\ tools\ netcoreapp2.1\ any /bl:"$(Build.ArtifactStagingDirectory)/build_logs/nbgv_publish.binlog"
94+ - script : dotnet publish -c $(BuildConfiguration) -o ../ nerdbank-gitversioning.npm/ out/ nbgv.cli/ tools/ netcoreapp2.1/ any /bl:"$(Build.ArtifactStagingDirectory)/build_logs/nbgv_publish.binlog"
8395 displayName : Publish nbgv tool
84- workingDirectory : src\ nbgv
96+ workingDirectory : src/ nbgv
8597
8698 - task : gulp@0
8799 displayName : Build nerdbank-gitversioning NPM package
88100 inputs :
89- gulpfile : src\ nerdbank-gitversioning.npm\ gulpfile.js
101+ gulpfile : src/ nerdbank-gitversioning.npm/ gulpfile.js
90102
91- - script : dotnet test Nerdbank .GitVersioning.Tests --no-build -c $(BuildConfiguration) --filter "TestCategory!=FailsOnAzurePipelines" --logger "trx;LogFileName=$(Build.ArtifactStagingDirectory)\ TestLogs\ TestResults.trx"
103+ - script : dotnet test NerdBank .GitVersioning.Tests --no-build $(testModifier) -c $(BuildConfiguration) --filter "TestCategory!=FailsOnAzurePipelines" --logger "trx;LogFileName=$(Build.ArtifactStagingDirectory)/ TestLogs/ TestResults.trx"
92104 displayName : Run tests
93105 workingDirectory : src
94106
@@ -97,7 +109,7 @@ stages:
97109 inputs :
98110 testResultsFormat : VSTest
99111 testResultsFiles : ' *.trx'
100- searchFolder : $(Build.ArtifactStagingDirectory)\ TestLogs
112+ searchFolder : $(Build.ArtifactStagingDirectory)/ TestLogs
101113 buildPlatform : $(BuildPlatform)
102114 buildConfiguration : $(BuildConfiguration)
103115 condition : always()
@@ -125,14 +137,17 @@ stages:
125137 --name 'Nerdbank.GitVersioning'
126138 --descriptionUrl 'https://github.com/dotnet/Nerdbank.GitVersioning'
127139 displayName: Code sign
128- condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
140+ condition: and(succeeded(), eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/'), eq(variables['Agent.OS'], 'Windows_NT'), ne(variables['Build.Reason'], 'PullRequest'))
129141
130142 - task : PublishBuildArtifacts@1
131143 inputs :
132144 PathtoPublish : $(Build.ArtifactStagingDirectory)/deployables
133145 ArtifactName : deployables
134146 ArtifactType : Container
135147 displayName : Publish deployables artifacts
148+ # Only deploy when from a single build in the build matrix
149+ condition : and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
150+
136151 - task : PublishBuildArtifacts@1
137152 inputs :
138153 PathtoPublish : $(Build.ArtifactStagingDirectory)/build_logs
@@ -148,23 +163,23 @@ stages:
148163 nuGetFeedType : internal
149164 publishVstsFeed : OSS/PublicCI
150165 allowPackageConflicts : true
151- condition : and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
166+ condition : and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/'), ne(variables['Build.Reason'], 'PullRequest'))
152167
153168 - pwsh : Set-Content -Path "$(Agent.TempDirectory)/.npmrc" -Value "registry=https://pkgs.dev.azure.com/andrewarnott/OSS/_packaging/PublicCI/npm/registry/`nalways-auth=true"
154169 displayName : Prepare to push to PublicCI
155- condition : and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
170+ condition : and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/'), ne(variables['Build.Reason'], 'PullRequest'))
156171 - task : npmAuthenticate@0
157172 displayName : Authenticate to PublicCI
158173 inputs :
159174 workingFile : $(Agent.TempDirectory)/.npmrc
160- condition : and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
175+ condition : and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/'), ne(variables['Build.Reason'], 'PullRequest'))
161176 - pwsh : |
162177 $tgz = (Get-ChildItem "$(Build.ArtifactStagingDirectory)/deployables/*.tgz")[0].FullName
163178 Write-Host "Will publish $tgz"
164179 npm publish $tgz
165180 workingDirectory: $(Agent.TempDirectory)
166181 displayName: npm publish to PublicCI feed
167- condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
182+ condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/andrewarnott/'), ne(variables['Build.Reason'], 'PullRequest'))
168183
169184 - stage : Test
170185 jobs :
@@ -177,24 +192,31 @@ stages:
177192 displayName : Install git
178193 - template : azure-pipelines/xplattest-pipeline.yml
179194
195+ - job : Ubuntu_Bionic_2_1
196+ pool :
197+ vmImage : Ubuntu 16.04 # not a bug. we always use this pool, but use containers for the specific version
198+ container : bionic-2.1
199+ steps :
200+ - template : azure-pipelines/xplattest-pipeline.yml
201+
180202 - job : Ubuntu_Bionic
181203 pool :
182204 vmImage : Ubuntu 16.04 # not a bug. we always use this pool, but use containers for the specific version
183205 container : bionic
184206 steps :
185207 - template : azure-pipelines/xplattest-pipeline.yml
186208
187- - job : Ubuntu_Bionic_3_0
209+ - job : Ubuntu_Focal
188210 pool :
189211 vmImage : Ubuntu 16.04 # not a bug. we always use this pool, but use containers for the specific version
190- container : bionic-3.0
212+ container : focal
191213 steps :
192214 - template : azure-pipelines/xplattest-pipeline.yml
193215
194- - job : Ubuntu_Disco
216+ - job : Ubuntu_Disco_3_0
195217 pool :
196218 vmImage : Ubuntu 16.04 # not a bug. we always use this pool, but use containers for the specific version
197- container : disco
219+ container : disco-3.0
198220 steps :
199221 - template : azure-pipelines/xplattest-pipeline.yml
200222
0 commit comments