@@ -57,56 +57,6 @@ variables:
5757
5858# Stage and Job "display names" are shortened because they are combined to form the name of the corresponding GitHub check.
5959stages :
60- - stage : code_analysis
61- displayName : Code Analysis
62- jobs :
63- # Check - "Xamarin.Android (Code Analysis Security and Compliance)"
64- - job : run_static_analysis
65- displayName : Security and Compliance
66- pool : $(HostedWinVS2019)
67- timeoutInMinutes : 60
68- cancelTimeoutInMinutes : 5
69- steps :
70- - checkout : self
71- submodules : recursive
72-
73- - template : security\credscan\v2.yml@yaml
74- parameters :
75- suppressionsFile : $(System.DefaultWorkingDirectory)\build-tools\automation\CredScanSuppressions.json
76-
77- - template : security\policheck\v1.yml@yaml
78- parameters :
79- exclusionFile : $(System.DefaultWorkingDirectory)\build-tools\automation\PoliCheckExclusions.xml
80- pE : 1|2|3|4
81- rulesDBPath : $(System.DefaultWorkingDirectory)\build-tools\automation\policheck-rules-db.mdb
82-
83- - task : securedevelopmentteam.vss-secure-development-tools.build-task-antimalware.AntiMalware@3
84- displayName : Run AntiMalware (Defender) Scan
85- inputs :
86- FileDirPath : $(System.DefaultWorkingDirectory)
87- EnableServices : true
88- condition : succeededOrFailed()
89-
90- - task : securedevelopmentteam.vss-secure-development-tools.build-task-report.SdtReport@1
91- displayName : Create Security Analysis Report
92- inputs :
93- CredScan : true
94- PoliCheck : true
95- condition : succeededOrFailed()
96-
97- - task : securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@2
98- displayName : Publish Security Analysis Logs
99- inputs :
100- ArtifactName : CodeAnalysisLogs
101- condition : succeededOrFailed()
102-
103- - task : securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
104- displayName : Fail Job if Security Issues are Detected
105- inputs :
106- CredScan : true
107- PoliCheck : true
108- condition : succeededOrFailed()
109-
11060- stage : mac_build
11161 displayName : Mac
11262 dependsOn : []
@@ -391,15 +341,15 @@ stages:
391341
392342 - template : yaml-templates\fail-on-issue.yaml
393343
394- # Check - "Xamarin.Android (Linux Build and Smoke Test )"
395- - stage : linux_build_test
344+ # Check - "Xamarin.Android (Linux Build)"
345+ - stage : linux_build
396346 displayName : Linux
397347 dependsOn : []
398348 jobs :
399- - job : linux_build_test
400- displayName : Build and Smoke Test
349+ - job : linux_build_create_sdk_pack
350+ displayName : Build
401351 pool : android-devdiv-ubuntu-vmss
402- timeoutInMinutes : 240
352+ timeoutInMinutes : 180
403353 cancelTimeoutInMinutes : 2
404354 workspace :
405355 clean : all
@@ -437,13 +387,9 @@ stages:
437387 workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
438388 displayName : make jenkins
439389
440- - task : DotNetCoreCLI@2
441- displayName : extract workload packs
442- inputs :
443- projects : $(System.DefaultWorkingDirectory)/xamarin-android/build-tools/create-packs/Microsoft.Android.Sdk.proj
444- arguments : >-
445- -t:CreateAllPacks,ExtractWorkloadPacks -c $(XA.Build.Configuration)
446- -bl:$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/create-all-packs.binlog
390+ - script : make create-nupkgs CONFIGURATION=$(XA.Build.Configuration)
391+ workingDirectory : $(System.DefaultWorkingDirectory)/xamarin-android
392+ displayName : make create-nupkgs
447393
448394 - script : >
449395 mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
@@ -458,29 +404,18 @@ stages:
458404 artifactName : nuget-linux-unsigned
459405 targetPath : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
460406
461- - template : yaml-templates/install-apkdiff.yaml
462-
463- - template : yaml-templates/run-nunit-tests.yaml
464- parameters :
465- useDotNet : true
466- testRunTitle : Xamarin.Android.Build.Tests - Linux .NET 6 Smoke Tests
467- testAssembly : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Test$(XA.Build.Configuration)/net6.0/Xamarin.Android.Build.Tests.dll
468- dotNetTestExtraArgs : --filter CheckSignApk # TODO: Add more tests (e.g. "TestCategory = SmokeTests $(DotNetNUnitCategories)" )
469- testResultsFile : TestResult-NET6SmokeMSBuildTests-Linux-$(XA.Build.Configuration).xml
470-
471407 - template : yaml-templates/upload-results.yaml
472408 parameters :
473409 xaSourcePath : $(System.DefaultWorkingDirectory)/xamarin-android
474410 artifactName : Build Results - Linux
475411 includeBuildResults : true
476412
477- - template : yaml-templates\ fail-on-issue.yaml
413+ - template : yaml-templates/ fail-on-issue.yaml
478414
479415- stage : smoke_tests
480416 displayName : Smoke Tests
481417 dependsOn : mac_build
482418 jobs :
483-
484419 # Check - "Xamarin.Android (Smoke Tests APKs Legacy - macOS)"
485420 - job : mac_apk_tests_legacy
486421 displayName : APKs Legacy - macOS
@@ -916,6 +851,37 @@ stages:
916851
917852 - template : yaml-templates/fail-on-issue.yaml
918853
854+ - stage : linux_tests
855+ displayName : Linux Tests
856+ dependsOn :
857+ - mac_build
858+ - linux_build
859+ jobs :
860+ # Check - "Xamarin.Android (Linux Tests MSBuild Smoke)"
861+ - job : linux_tests_smoke
862+ displayName : MSBuild Smoke
863+ pool : android-devdiv-ubuntu-vmss
864+ timeoutInMinutes : 180
865+ workspace :
866+ clean : all
867+ steps :
868+ - task : DownloadPipelineArtifact@2
869+ inputs :
870+ artifactName : nuget-linux-unsigned
871+ downloadPath : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)
872+
873+ - template : yaml-templates/setup-test-environment.yaml
874+
875+ - template : yaml-templates/run-nunit-tests.yaml
876+ parameters :
877+ useDotNet : true
878+ testRunTitle : Xamarin.Android.Build.Tests - Linux .NET 6 Smoke Tests
879+ testAssembly : $(System.DefaultWorkingDirectory)/xamarin-android/bin/Test$(XA.Build.Configuration)/net6.0/Xamarin.Android.Build.Tests.dll
880+ dotNetTestExtraArgs : --filter "TestCategory = SmokeTests $(DotNetNUnitCategories)"
881+ testResultsFile : TestResult-NET6SmokeMSBuildTests-Linux-$(XA.Build.Configuration).xml
882+
883+ - template : yaml-templates/fail-on-issue.yaml
884+
919885- stage : msbuild_legacy
920886 displayName : Legacy Tests
921887 dependsOn : mac_build
@@ -1618,3 +1584,54 @@ stages:
16181584 buildParameters : ' { "REPO": "$(Build.Repository.Name)", "COMMIT": "$(Build.SourceVersion)", "SIGN_TYPE": "Real", "GITHUB_CONTEXT": "$(GitHub.Artifacts.Context)", "BUILD_DEFINITIONNAME": "$(Build.DefinitionName)", "BUILD_ID": "$(Build.BuildId)", "BUILD_NUMBER": "$(Build.BuildNumber)", "BUILD_URI": "$(Build.BuildUri)", "ENABLE_JAR_SIGNING": "true" }'
16191585 authenticationMethod : ' OAuth Token'
16201586 password : $(System.AccessToken) # Equivalent to the 'Allow scripts to access OAuth token option': https://stackoverflow.com/questions/52837980/how-to-allow-scripts-to-access-oauth-token-from-yaml-builds
1587+
1588+ - stage : code_analysis
1589+ displayName : Code Analysis
1590+ dependsOn : []
1591+ jobs :
1592+ # Check - "Xamarin.Android (Code Analysis Security and Compliance)"
1593+ - job : run_static_analysis
1594+ displayName : Security and Compliance
1595+ pool : $(HostedWinVS2019)
1596+ timeoutInMinutes : 60
1597+ cancelTimeoutInMinutes : 5
1598+ steps :
1599+ - checkout : self
1600+ submodules : recursive
1601+
1602+ - template : security\credscan\v2.yml@yaml
1603+ parameters :
1604+ suppressionsFile : $(System.DefaultWorkingDirectory)\build-tools\automation\CredScanSuppressions.json
1605+
1606+ - template : security\policheck\v1.yml@yaml
1607+ parameters :
1608+ exclusionFile : $(System.DefaultWorkingDirectory)\build-tools\automation\PoliCheckExclusions.xml
1609+ pE : 1|2|3|4
1610+ rulesDBPath : $(System.DefaultWorkingDirectory)\build-tools\automation\policheck-rules-db.mdb
1611+
1612+ - task : securedevelopmentteam.vss-secure-development-tools.build-task-antimalware.AntiMalware@3
1613+ displayName : Run AntiMalware (Defender) Scan
1614+ inputs :
1615+ FileDirPath : $(System.DefaultWorkingDirectory)
1616+ EnableServices : true
1617+ condition : succeededOrFailed()
1618+
1619+ - task : securedevelopmentteam.vss-secure-development-tools.build-task-report.SdtReport@1
1620+ displayName : Create Security Analysis Report
1621+ inputs :
1622+ CredScan : true
1623+ PoliCheck : true
1624+ condition : succeededOrFailed()
1625+
1626+ - task : securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@2
1627+ displayName : Publish Security Analysis Logs
1628+ inputs :
1629+ ArtifactName : CodeAnalysisLogs
1630+ condition : succeededOrFailed()
1631+
1632+ - task : securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
1633+ displayName : Fail Job if Security Issues are Detected
1634+ inputs :
1635+ CredScan : true
1636+ PoliCheck : true
1637+ condition : succeededOrFailed()
0 commit comments