@@ -416,6 +416,102 @@ stages:
416416
417417 - template : yaml-templates\fail-on-issue.yaml
418418
419+ # Check - "Xamarin.Android (Linux Build and Smoke Test)"
420+ - stage : linux_build_test
421+ displayName : Linux
422+ dependsOn : []
423+ jobs :
424+ - job : linux_build_test
425+ displayName : Build and Smoke Test
426+ pool : Xamarin-Android-Ubuntu20.04
427+ timeoutInMinutes : 240
428+ cancelTimeoutInMinutes : 2
429+ workspace :
430+ clean : all
431+ steps :
432+ - checkout : self
433+ clean : true
434+ submodules : recursive
435+
436+ - checkout : monodroid
437+ clean : true
438+ submodules : recursive
439+ path : s/xamarin-android/external/monodroid
440+ persistCredentials : true
441+
442+ - script : rm -rf external/monodroid/external/xamarin-android
443+ workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
444+ displayName : delete external xamarin-android submodule
445+
446+ - template : yaml-templates/use-dot-net.yaml
447+ parameters :
448+ version : $(DotNet5Version)
449+
450+ - template : yaml-templates/use-dot-net.yaml
451+ parameters :
452+ version : $(DotNetCoreVersion)
453+
454+ - script : >
455+ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF &&
456+ echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list &&
457+ sudo apt-get update &&
458+ sudo apt-get install -y --no-install-recommends apt-transport-https mono-complete nuget
459+ displayName: install mono
460+
461+ - task : NuGetToolInstaller@0
462+ inputs :
463+ versionSpec : 5.x
464+
465+ - task : NuGetAuthenticate@0
466+ displayName : authenticate with azure artifacts
467+ inputs :
468+ forceReinstallCredentialProvider : true
469+
470+ - script : make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration)
471+ workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
472+ displayName : make prepare-external-git-dependencies
473+
474+ - script : make jenkins V=1 PREPARE_CI=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(XA.Build.Configuration)
475+ workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
476+ displayName : make jenkins
477+
478+ - task : MSBuild@1
479+ displayName : pack all nupkgs
480+ inputs :
481+ solution : $(System.DefaultWorkingDirectory)/xamarin-android/build-tools/create-packs/Microsoft.Android.Sdk.proj
482+ configuration : $(XA.Build.Configuration)
483+ msbuildArguments : >-
484+ /t:CreateAllPacks,ExtractWorkloadPacks /restore
485+ /p:NuGetLicense=$(System.DefaultWorkingDirectory)/xamarin-android/external/monodroid/tools/scripts/License.txt
486+ /bl:$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/create-all-packs.binlog
487+
488+ - script : >
489+ mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nupkg-linux &&
490+ cp $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/Microsoft.Android.Sdk.linux-x64*.nupkg
491+ $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nupkg-linux
492+ workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
493+ displayName: copy linux sdk
494+
495+ - task : PublishPipelineArtifact@1
496+ displayName : upload linux sdk
497+ inputs :
498+ artifactName : nupkg-linux
499+ targetPath : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nupkg-linux
500+
501+ - template : yaml-templates/run-nunit-tests.yaml
502+ parameters :
503+ useDotNet : true
504+ useHostedDotNetPath : false
505+ testRunTitle : Xamarin.Android.Build.Tests - Linux .NET 6 Smoke Tests
506+ testAssembly : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Test$(XA.Build.Configuration)/netcoreapp3.1/Xamarin.Android.Build.Tests.dll
507+ dotNetTestExtraArgs : --filter "TestCategory = SmokeTests $(DotNetNUnitCategories)"
508+ testResultsFile : TestResult-NET6SmokeMSBuildTests-Linux-$(XA.Build.Configuration).xml
509+
510+ - template : yaml-templates/upload-results.yaml
511+ parameters :
512+ solution : $(System.DefaultWorkingDirectory)/xamarin-android/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj
513+ artifactName : Build Results - Linux
514+
419515- stage : smoke_tests
420516 displayName : Smoke Tests
421517 dependsOn : mac_build
0 commit comments