@@ -85,258 +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
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 }}
26492
265- - template : yaml-templates\fail-on-issue .yaml
93+ - template : yaml-templates/build-windows .yaml
26694
26795# 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
34097
34198- stage : smoke_tests
34299 displayName : Smoke Tests
0 commit comments