@@ -85,257 +85,15 @@ variables:
8585
8686# Stage and Job "display names" are shortened because they are combined to form the name of the corresponding GitHub check.
8787stages :
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.417
180-
181- # 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.
182- # The VS installer will attempt to resume any failed or partial installation before trying to downgrade Xamarin.Android.
183- # VSIXInstaller.exe will exit non-zero when the downgrade attempt is a no-op, so we will allow this step to fail silently.
184- - powershell : |
185- $vsWhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
186- & "$vsWhere" -all -prerelease -latest | Out-Default
187- $isLatestVSLaunchable = & "$vsWhere" -all -prerelease -latest -property isLaunchable
188- if ($isLatestVSLaunchable -eq 0) {
189- $vsPath = & "$vsWhere" -all -prerelease -latest -property installationPath
190- Write-Host "Attempting to repair VS instance:" $vsPath
191- $vsInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vs_installer.exe"
192- & "$vsInstaller" resume --installPath $vsPath --quiet --norestart | Out-Default
193- Write-Host "vs_installer.exe resume attempt complete"
194- }
195- $vsixInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe"
196- $ts = Get-Date -Format FileDateTimeUniversal
197- $log = "xavsixdowngrade-$ts.log"
198- $process = Start-Process -NoNewWindow -FilePath $vsixInstaller -ArgumentList "/downgrade:Xamarin.Android.Sdk /admin /quiet /logFile:$log" -Wait -PassThru -RedirectStandardError "err.txt"
199- Get-Content "err.txt" | Write-Host
200- Get-Content "${env:TEMP}\$log" | Write-Host
201- Write-Host "VSInstaller.exe exited with code:" $process.ExitCode
202- Remove-Item "${env:TEMP}\$log"
203- displayName: downgrade XA to stable
204- ignoreLASTEXITCODE: true
205-
206- - task : DotNetCoreCLI@2
207- displayName : Prepare Solution
208- inputs :
209- projects : Xamarin.Android.sln
210- arguments : ' -c $(XA.Build.Configuration) -t:Prepare --no-restore -p:AutoProvision=true -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-build-prepare.binlog'
211-
212- # Build, pack .nupkgs, and extract workload packs to dotnet preview test directory
213- - template : yaml-templates\run-dotnet-preview.yaml
214- parameters :
215- project : Xamarin.Android.sln
216- arguments : >-
217- -t:BuildDotNet,PackDotNet -c $(XA.Build.Configuration) -v:n
218- -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-build.binlog
219- displayName : Build Solution
220- continueOnError : false
221-
222- - task : MSBuild@1
223- displayName : msbuild create-vsix
224- inputs :
225- solution : build-tools\create-vsix\create-vsix.csproj
226- configuration : $(XA.Build.Configuration)
227- msbuildArguments : /p:CreateVsixContainer=True /p:ZipPackageCompressionLevel=Normal /bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-create-vsix.binlog
228-
229- - task : MSBuild@1
230- displayName : msbuild xabuild
231- inputs :
232- solution : tools\xabuild\xabuild.csproj
233- configuration : $(XA.Build.Configuration)
234- msbuildArguments : /restore /bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-xabuild.binlog
235-
236- - task : CmdLine@1
237- displayName : xabuild Xamarin.Android-Tests
238- inputs :
239- filename : bin\$(XA.Build.Configuration)\bin\xabuild.exe
240- arguments : Xamarin.Android-Tests.sln /restore /p:Configuration=$(XA.Build.Configuration) /bl:$(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\dotnet-build-tests.binlog
241-
242- - template : yaml-templates\install-apkdiff.yaml
243-
244- - template : yaml-templates\run-nunit-tests.yaml
245- parameters :
246- testRunTitle : Smoke MSBuild Tests - Windows Build Tree
247- testAssembly : $(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\net472\Xamarin.Android.Build.Tests.dll
248- testResultsFile : TestResult-SmokeMSBuildTests-WinBuildTree-$(XA.Build.Configuration).xml
249- nunitConsoleExtraArgs : --where "cat == SmokeTests"
250-
251- - template : yaml-templates\run-nunit-tests.yaml
252- parameters :
253- useDotNet : true
254- testRunTitle : Smoke MSBuild Tests - Windows Dotnet Build
255- testAssembly : $(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\$(DotNetStableTargetFramework)\Xamarin.Android.Build.Tests.dll
256- testResultsFile : TestResult-SmokeMSBuildTests-WinDotnetBuild-$(XA.Build.Configuration).xml
257- dotNetTestExtraArgs : --filter "TestCategory = SmokeTests $(DotNetNUnitCategories)"
258-
259- - template : yaml-templates\upload-results.yaml
260- parameters :
261- artifactName : Build Results - Windows
262- includeBuildResults : true
88+ - template : yaml-templates/build-macos.yaml
89+ parameters :
90+ provisionatorChannel : ${{ parameters.provisionatorChannel }}
91+ signClassicPkgContent : ${{ parameters.signClassicPkgContent }}
26392
264- - template : yaml-templates\fail-on-issue .yaml
93+ - template : yaml-templates/build-windows .yaml
26594
26695# Check - "Xamarin.Android (Linux > Build)"
267- - stage : linux_build
268- displayName : Linux
269- dependsOn : []
270- jobs :
271- - job : linux_build_create_sdk_pack
272- displayName : Linux > Build
273- pool : android-devdiv-ubuntu-vmss
274- timeoutInMinutes : 180
275- cancelTimeoutInMinutes : 2
276- workspace :
277- clean : all
278- variables :
279- CXX : g++-10
280- CC : gcc-10
281- steps :
282- - checkout : self
283- clean : true
284- submodules : recursive
285- path : s/xamarin-android
286-
287- - checkout : monodroid
288- clean : true
289- submodules : recursive
290- path : s/xamarin-android/external/monodroid
291- persistCredentials : true
292-
293- - script : rm -rf external/monodroid/external/xamarin-android
294- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
295- displayName : delete external xamarin-android submodule
296-
297- - template : yaml-templates/setup-ubuntu.yaml
298-
299- - task : NuGetAuthenticate@0
300- displayName : authenticate with azure artifacts
301- inputs :
302- forceReinstallCredentialProvider : true
303-
304- - script : make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration)
305- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
306- displayName : make prepare-external-git-dependencies
307-
308- - script : make jenkins PREPARE_CI=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(XA.Build.Configuration)
309- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
310- displayName : make jenkins
311-
312- - script : make create-nupkgs CONFIGURATION=$(XA.Build.Configuration)
313- workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
314- displayName : make create-nupkgs
315-
316- - script : >
317- df -h &&
318- mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
319- ln $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/Microsoft.Android.Sdk.Linux*.nupkg
320- $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
321- ln $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/SignList.xml
322- $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
323- workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
324- displayName: copy linux sdk
325-
326- - task : PublishPipelineArtifact@1
327- displayName : upload linux sdk
328- inputs :
329- artifactName : $(LinuxNuGetArtifactName)
330- targetPath : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
331-
332- - template : yaml-templates/upload-results.yaml
333- parameters :
334- xaSourcePath : $(System.DefaultWorkingDirectory)/xamarin-android
335- artifactName : Build Results - Linux
336- includeBuildResults : true
337-
338- - template : yaml-templates/fail-on-issue.yaml
96+ - template : yaml-templates/build-linux.yaml
33997
34098- stage : smoke_tests
34199 displayName : Smoke Tests
0 commit comments