@@ -85,258 +85,15 @@ variables:
85
85
86
86
# Stage and Job "display names" are shortened because they are combined to form the name of the corresponding GitHub check.
87
87
stages :
88
- - stage : mac_build
89
- displayName : Mac
90
- dependsOn : []
91
- jobs :
92
- # Check - "Xamarin.Android (macOS > Build)"
93
- - job : mac_build_create_installers
94
- displayName : macOS > Build
95
- pool :
96
- name : $(MacBuildPoolName)
97
- vmImage : $(MacBuildPoolImage)
98
- ${{ if eq(variables['MacBuildPoolName'], 'VSEng-Xamarin-RedmondMac-Android-Untrusted') }} :
99
- demands : macOS.Name -equals Monterey
100
- timeoutInMinutes : 240
101
- cancelTimeoutInMinutes : 5
102
- workspace :
103
- clean : all
104
- steps :
105
- - checkout : self
106
- submodules : recursive
107
- path : s/xamarin-android
108
-
109
- - template : yaml-templates/install-microbuild-tooling.yaml
110
- parameters :
111
- condition : and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
112
-
113
- - template : yaml-templates/commercial-build.yaml
114
- parameters :
115
- provisionatorChannel : ${{ parameters.provisionatorChannel }}
116
- signClassicPkgContent : ${{ parameters.signClassicPkgContent }}
117
-
118
- - template : yaml-templates/remove-microbuild-tooling.yaml
119
- parameters :
120
- condition : and(succeededOrFailed(), eq(variables['MicroBuildSignType'], 'Real'))
121
-
122
- - script : >
123
- mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/windows-toolchain-pdb &&
124
- cd $(System.DefaultWorkingDirectory)/xamarin-android/bin/$(XA.Build.Configuration)/lib/packs/Microsoft.Android.Sdk.Darwin/*/tools/binutils/windows-toolchain-pdb &&
125
- zip -r $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/windows-toolchain-pdb/windows-toolchain-pdb.zip .
126
- workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
127
- displayName: zip Windows toolchain pdb files
128
-
129
- - task : PublishPipelineArtifact@1
130
- displayName : upload Windows toolchain pdb files
131
- inputs :
132
- artifactName : $(WindowsToolchainPdbArtifactName)
133
- targetPath : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/windows-toolchain-pdb
134
-
135
- - template : yaml-templates/upload-results.yaml
136
- parameters :
137
- xaSourcePath : $(System.DefaultWorkingDirectory)/xamarin-android
138
- artifactName : Build Results - macOS
139
- includeBuildResults : true
140
-
141
- - template : yaml-templates/run-xaprepare.yaml
142
- parameters :
143
- arguments : --s=DetermineApplicableTests
144
- xaSourcePath : $(System.DefaultWorkingDirectory)/xamarin-android
145
- displayName : determine which test stages to run
146
- name : TestConditions
147
- condition : and(succeeded(), eq(variables['Build.DefinitionName'], 'Xamarin.Android-PR'))
148
-
149
- # This stage ensures Windows specific build steps continue to work, and runs unit tests.
150
- - stage : win_build_test
151
- displayName : Windows
152
- dependsOn : []
153
- jobs :
154
- # Check - "Xamarin.Android (Windows > Build & Smoke Test)"
155
- - job : win_build_test
156
- displayName : Windows > Build & Smoke Test
157
- pool : $(1ESWindowsPool)
158
- timeoutInMinutes : 360
159
- cancelTimeoutInMinutes : 5
160
- steps :
161
- - checkout : self
162
- submodules : recursive
163
-
164
- - template : yaml-templates\kill-processes.yaml
165
-
166
- - template : yaml-templates\clean.yaml
167
-
168
- - script : |
169
- echo ##vso[task.setvariable variable=JI_JAVA_HOME]%JAVA_HOME_11_X64%
170
- displayName: set JI_JAVA_HOME
171
-
172
- - template : yaml-templates\use-dot-net.yaml
173
- parameters :
174
- remove_dotnet : true
175
-
176
- # xabuild still depends on .NET Core 3 or earlier
177
- - template : yaml-templates\use-dot-net.yaml
178
- parameters :
179
- version : 3.1
180
- quality : GA
181
-
182
- # Downgrade the XA .vsix installed into the instance of VS that we are building with so that we don't restore/build against a test version.
183
- # The VS installer will attempt to resume any failed or partial installation before trying to downgrade Xamarin.Android.
184
- # VSIXInstaller.exe will exit non-zero when the downgrade attempt is a no-op, so we will allow this step to fail silently.
185
- - powershell : |
186
- $vsWhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
187
- & "$vsWhere" -all -prerelease -latest | Out-Default
188
- $isLatestVSLaunchable = & "$vsWhere" -all -prerelease -latest -property isLaunchable
189
- if ($isLatestVSLaunchable -eq 0) {
190
- $vsPath = & "$vsWhere" -all -prerelease -latest -property installationPath
191
- Write-Host "Attempting to repair VS instance:" $vsPath
192
- $vsInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vs_installer.exe"
193
- & "$vsInstaller" resume --installPath $vsPath --quiet --norestart | Out-Default
194
- Write-Host "vs_installer.exe resume attempt complete"
195
- }
196
- $vsixInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe"
197
- $ts = Get-Date -Format FileDateTimeUniversal
198
- $log = "xavsixdowngrade-$ts.log"
199
- $process = Start-Process -NoNewWindow -FilePath $vsixInstaller -ArgumentList "/downgrade:Xamarin.Android.Sdk /admin /quiet /logFile:$log" -Wait -PassThru -RedirectStandardError "err.txt"
200
- Get-Content "err.txt" | Write-Host
201
- Get-Content "${env:TEMP}\$log" | Write-Host
202
- Write-Host "VSInstaller.exe exited with code:" $process.ExitCode
203
- Remove-Item "${env:TEMP}\$log"
204
- displayName: downgrade XA to stable
205
- ignoreLASTEXITCODE: true
206
-
207
- - task : DotNetCoreCLI@2
208
- displayName : Prepare Solution
209
- inputs :
210
- projects : Xamarin.Android.sln
211
- arguments : ' -c $(XA.Build.Configuration) -t:Prepare --no-restore -p:AutoProvision=true -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-build-prepare.binlog'
212
-
213
- # Build, pack .nupkgs, and extract workload packs to dotnet preview test directory
214
- - template : yaml-templates\run-dotnet-preview.yaml
215
- parameters :
216
- project : Xamarin.Android.sln
217
- arguments : >-
218
- -t:BuildDotNet,PackDotNet -c $(XA.Build.Configuration) -v:n
219
- -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-build.binlog
220
- displayName : Build Solution
221
- continueOnError : false
222
-
223
- - task : MSBuild@1
224
- displayName : msbuild create-vsix
225
- inputs :
226
- solution : build-tools\create-vsix\create-vsix.csproj
227
- configuration : $(XA.Build.Configuration)
228
- msbuildArguments : /p:CreateVsixContainer=True /p:ZipPackageCompressionLevel=Normal /bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-create-vsix.binlog
229
-
230
- - task : MSBuild@1
231
- displayName : msbuild xabuild
232
- inputs :
233
- solution : tools\xabuild\xabuild.csproj
234
- configuration : $(XA.Build.Configuration)
235
- msbuildArguments : /restore /bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-xabuild.binlog
236
-
237
- - task : CmdLine@1
238
- displayName : xabuild Xamarin.Android-Tests
239
- inputs :
240
- filename : bin\$(XA.Build.Configuration)\bin\xabuild.exe
241
- arguments : Xamarin.Android-Tests.sln /restore /p:Configuration=$(XA.Build.Configuration) /bl:$(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\dotnet-build-tests.binlog
242
-
243
- - template : yaml-templates\install-apkdiff.yaml
244
-
245
- - template : yaml-templates\run-nunit-tests.yaml
246
- parameters :
247
- testRunTitle : Smoke MSBuild Tests - Windows Build Tree
248
- testAssembly : $(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\net472\Xamarin.Android.Build.Tests.dll
249
- testResultsFile : TestResult-SmokeMSBuildTests-WinBuildTree-$(XA.Build.Configuration).xml
250
- nunitConsoleExtraArgs : --where "cat == SmokeTests"
251
-
252
- - template : yaml-templates\run-nunit-tests.yaml
253
- parameters :
254
- useDotNet : true
255
- testRunTitle : Smoke MSBuild Tests - Windows Dotnet Build
256
- testAssembly : $(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\$(DotNetStableTargetFramework)\Xamarin.Android.Build.Tests.dll
257
- testResultsFile : TestResult-SmokeMSBuildTests-WinDotnetBuild-$(XA.Build.Configuration).xml
258
- dotNetTestExtraArgs : --filter "TestCategory = SmokeTests $(DotNetNUnitCategories)"
259
-
260
- - template : yaml-templates\upload-results.yaml
261
- parameters :
262
- artifactName : Build Results - Windows
263
- includeBuildResults : true
88
+ - template : yaml-templates/build-macos.yaml
89
+ parameters :
90
+ provisionatorChannel : ${{ parameters.provisionatorChannel }}
91
+ signClassicPkgContent : ${{ parameters.signClassicPkgContent }}
264
92
265
- - template : yaml-templates\fail-on-issue .yaml
93
+ - template : yaml-templates/build-windows .yaml
266
94
267
95
# Check - "Xamarin.Android (Linux > Build)"
268
- - stage : linux_build
269
- displayName : Linux
270
- dependsOn : []
271
- jobs :
272
- - job : linux_build_create_sdk_pack
273
- displayName : Linux > Build
274
- pool : android-devdiv-ubuntu-vmss
275
- timeoutInMinutes : 180
276
- cancelTimeoutInMinutes : 2
277
- workspace :
278
- clean : all
279
- variables :
280
- CXX : g++-10
281
- CC : gcc-10
282
- steps :
283
- - checkout : self
284
- clean : true
285
- submodules : recursive
286
- path : s/xamarin-android
287
-
288
- - checkout : monodroid
289
- clean : true
290
- submodules : recursive
291
- path : s/xamarin-android/external/monodroid
292
- persistCredentials : true
293
-
294
- - script : rm -rf external/monodroid/external/xamarin-android
295
- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
296
- displayName : delete external xamarin-android submodule
297
-
298
- - template : yaml-templates/setup-ubuntu.yaml
299
-
300
- - task : NuGetAuthenticate@0
301
- displayName : authenticate with azure artifacts
302
- inputs :
303
- forceReinstallCredentialProvider : true
304
-
305
- - script : make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration)
306
- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
307
- displayName : make prepare-external-git-dependencies
308
-
309
- - script : make jenkins PREPARE_CI=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(XA.Build.Configuration)
310
- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
311
- displayName : make jenkins
312
-
313
- - script : make create-nupkgs CONFIGURATION=$(XA.Build.Configuration)
314
- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
315
- displayName : make create-nupkgs
316
-
317
- - script : >
318
- df -h &&
319
- mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
320
- ln $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/Microsoft.Android.Sdk.Linux*.nupkg
321
- $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
322
- ln $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/SignList.xml
323
- $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
324
- workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
325
- displayName: copy linux sdk
326
-
327
- - task : PublishPipelineArtifact@1
328
- displayName : upload linux sdk
329
- inputs :
330
- artifactName : $(LinuxNuGetArtifactName)
331
- targetPath : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
332
-
333
- - template : yaml-templates/upload-results.yaml
334
- parameters :
335
- xaSourcePath : $(System.DefaultWorkingDirectory)/xamarin-android
336
- artifactName : Build Results - Linux
337
- includeBuildResults : true
338
-
339
- - template : yaml-templates/fail-on-issue.yaml
96
+ - template : yaml-templates/build-linux.yaml
340
97
341
98
- stage : smoke_tests
342
99
displayName : Smoke Tests
@@ -1343,7 +1100,7 @@ stages:
1343
1100
inputs :
1344
1101
solution : $(System.DefaultWorkingDirectory)\UITools\src\Xamarin.Designer.Android\Xamarin.AndroidDesigner.sln
1345
1102
vsVersion : 17.0
1346
- msbuildArgs : /t:Build
1103
+ msbuildArgs : /t:Build /p:GitHubToken=$(GitHub.Token)
1347
1104
platform : Any CPU
1348
1105
configuration : DebugWin32
1349
1106
0 commit comments