Skip to content

Commit 8ea42ea

Browse files
committed
[CI] Add Linux Build and Smoke Test job
1 parent e937a47 commit 8ea42ea

File tree

6 files changed

+106
-7
lines changed

6 files changed

+106
-7
lines changed

.external

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
xamarin/monodroid:main@dade1f497271f3ae5ceb1fe8c6c672b399a369ec
1+
xamarin/monodroid:pack-linux@ecfa7c781965d3fd4ea0b91c19f56a004a809a50
22
mono/mono:2020-02@c66141a8c7ba2566c578c2dd012b2b723e006213

build-tools/automation/azure-pipelines-oss.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,7 @@ stages:
198198
sudo apt-get install -y ca-certificates-mono
199199
displayName: install mono preview
200200
201-
- script: echo "##vso[task.setvariable variable=HOME]$(Agent.HomeDirectory)"
202-
displayName: set HOME to agent directory
203-
204-
- script: echo "##vso[task.setvariable variable=PATH]$PATH:$(Agent.HomeDirectory)/android-toolchain/$(XA.Jdk11.Folder)/bin"
201+
- script: echo "##vso[task.setvariable variable=PATH]$PATH:$HOME/android-toolchain/$(XA.Jdk11.Folder)/bin"
205202
displayName: append jdk tools to PATH
206203

207204
- script: make jenkins V=1 PREPARE_CI_PR=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(XA.Build.Configuration)

build-tools/automation/azure-pipelines.yaml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

build-tools/automation/yaml-templates/run-nunit-tests.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ parameters:
66
nunitConsoleExtraArgs: ''
77
dotNetTestExtraArgs: ''
88
useDotNet: false
9+
useHostedDotNetPath: true
910
workers: $(NUnit.NumberOfTestWorkers)
1011
condition: succeeded()
1112

@@ -14,7 +15,11 @@ steps:
1415
if ([Environment]::OSVersion.Platform -eq "Unix") {
1516
if ("${{ parameters.useDotNet }}" -eq $true) {
1617
Write-Host '##vso[task.setvariable variable=TestResultsFormat]VSTest'
17-
& $env:HOME/Library/Android/dotnet/dotnet test ${{ parameters.testAssembly }} --results-directory . --logger "trx;LogFileName=${{ parameters.testResultsFile }}" ${{ parameters.dotNetTestExtraArgs }} -- NUnit.NumberOfTestWorkers=${{ parameters.workers }}
18+
$dotnetPath = "$env:HOME/Library/Android/dotnet/dotnet"
19+
if ("${{ parameters.useHostedDotNetPath }}" -ne $true) {
20+
$dotnetPath = "$env:HOME/android-toolchain/dotnet/dotnet"
21+
}
22+
& $dotnetPath test ${{ parameters.testAssembly }} --results-directory . --logger "trx;LogFileName=${{ parameters.testResultsFile }}" ${{ parameters.dotNetTestExtraArgs }} -- NUnit.NumberOfTestWorkers=${{ parameters.workers }}
1823
} else {
1924
Write-Host '##vso[task.setvariable variable=TestResultsFormat]NUnit'
2025
& ${{ parameters.nunitConsole }} ${{ parameters.testAssembly }} --result ${{ parameters.testResultsFile }} --workers=${{ parameters.workers }} ${{ parameters.nunitConsoleExtraArgs }}

build-tools/automation/yaml-templates/use-dot-net.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,4 @@ steps:
5353
echo "##vso[task.setvariable variable=DOTNET_ROOT]$DOTNET_ROOT" &&
5454
echo "##vso[task.setvariable variable=PATH]$PATH"
5555
displayName: install .NET Core ${{ parameters.version }}
56-
condition: and(succeeded(), eq(variables['agent.os'], 'Darwin'))
56+
condition: and(succeeded(), ne(variables['agent.os'], 'Windows_NT'))

src/Xamarin.Android.Build.Tasks/Microsoft.NET.Workload.Android/WorkloadManifest.in.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"kind": "sdk",
1717
"version": "@SDK_PACK_VERSION@",
1818
"alias-to": {
19+
"linux-x64": "Microsoft.Android.Sdk.linux-x64",
1920
"osx-x64": "Microsoft.Android.Sdk.osx-x64",
2021
"win-x64": "Microsoft.Android.Sdk.win-x64",
2122
"linux-x64": "Microsoft.Android.Sdk.linux-x64"

0 commit comments

Comments
 (0)