Skip to content

Commit

Permalink
Share yaml, other fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
pjcollins committed Jan 27, 2021
1 parent bb2c50e commit 5d3b681
Show file tree
Hide file tree
Showing 7 changed files with 182 additions and 259 deletions.
161 changes: 42 additions & 119 deletions build-tools/automation/azure-pipelines-nightly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
name: $(Build.SourceBranchName)-$(Build.SourceVersion)-$(Rev:r)

trigger:
- none
- none

pr:
- none
- none

schedules:
- cron: "0 3 * * Sun"
Expand Down Expand Up @@ -34,153 +34,72 @@ variables:
RunningOnCI: true
XA.Build.Configuration: Release
XA.Jdk8.Folder: jdk-1.8
XA.Jdk11.Folder: jdk-11
NuGetArtifactName: nupkgs
InstallerArtifactName: installers
TestAssembliesArtifactName: test-assemblies
DotNetCoreVersion: 3.1.201
DotNet5Version: 5.0.100
MacMojaveBuildPool:
MacMojaveBuildPool: VSEng-Xamarin-RedmondMac-Android-Untrusted
HostedMacImage: macOS-10.15
VSEngWinVS2019: Xamarin-Android-Win2019-1120
XA.Build.MacOSSPool: VSEng-Xamarin-RedmondMac-Android-Untrusted
GitHub.Token: $(github--pat--vs-mobiletools-engineering-service2)

stages:
- stage: mac_build
displayName: Mac
displayName: Build
dependsOn: []
jobs:
- job: mac_build_create_installers
displayName: Build
displayName: macOS
pool: $(MacMojaveBuildPool)
timeoutInMinutes: 240
cancelTimeoutInMinutes: 5
workspace:
clean: all
variables:
- group: Xamarin-Secrets
- group: Xamarin Signing
- group: xamops-azdev-secrets
steps:
- checkout: self
submodules: recursive

- script: echo "##vso[task.setvariable variable=JI_JAVA_HOME]$HOME/Library/Android/$(XA.Jdk11.Folder)"
displayName: set JI_JAVA_HOME

- template: yaml-templates/use-dot-net.yaml
parameters:
version: $(DotNet5Version)
remove_dotnet: true

- template: yaml-templates/use-dot-net.yaml
parameters:
version: $(DotNetCoreVersion)

- task: provisionator@2
displayName: Install Xcode
inputs:
github_token: $(GitHub.Token)
provisioning_script: $(System.DefaultWorkingDirectory)/xamarin-android/build-tools/provisioning/xcode.csx
provisioning_extra_args: '-v -v -v -v'

# Prepare and build everything
- script: make prepare-update-mono V=1 CONFIGURATION=$(XA.Build.Configuration) PREPARE_CI=1 PREPARE_AUTOPROVISION=1
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: make prepare-update-mono

# Clone monodroid wth submodules, but disregard the unused xamarin-android submodule.
- checkout: monodroid
clean: true
submodules: recursive
path: s/xamarin-android/external/monodroid
persistCredentials: true

- script: rm -rf external/monodroid/external/xamarin-android
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: delete legacy xamarin-android submodule

- script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration)
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: make prepare-external-git-dependencies

- script: make jenkins V=1 CONFIGURATION=$(XA.Build.Configuration) PREPARE_CI=1 PREPARE_AUTOPROVISION=1
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: make jenkins

# Build and package test assemblies
- script: make all-tests V=1 CONFIGURATION=$(XA.Build.Configuration)
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: make all-tests

- script: >
cp -r bin/$(XA.Build.Configuration)/bcl-tests bin/Test$(XA.Build.Configuration)/bcl-tests &&
cp bin/Build$(XA.Build.Configuration)/ProfileAssemblies.projitems bin/Test$(XA.Build.Configuration)/bcl-tests/
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: copy bcl-tests assemblies
- task: PublishPipelineArtifact@1
displayName: upload test assemblies
inputs:
artifactName: $(TestAssembliesArtifactName)
targetPath: xamarin-android/bin/Test$(XA.Build.Configuration)

- task: MSBuild@1
displayName: pack all nupkgs
inputs:
solution: $(System.DefaultWorkingDirectory)/xamarin-android/build-tools/create-packs/Microsoft.Android.Sdk.proj
configuration: $(XA.Build.Configuration)
msbuildArguments: /t:CreateAllPacks /restore /p:NuGetLicense=$(System.DefaultWorkingDirectory)/xamarin-android/external/monodroid/tools/scripts/License.txt /bl:$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/create-all-packs.binlog

# Create installers
- script: make create-installers V=1 CONFIGURATION=$(XA.Build.Configuration)
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: make create-installers

- script: >
mkdir -p bin/Build$(XA.Build.Configuration)/$(InstallerArtifactName) &&
cp bin/Build$(XA.Build.Configuration)/*.vsix bin/Build$(XA.Build.Configuration)/$(InstallerArtifactName) &&
cp bin/Build$(XA.Build.Configuration)/*.pkg bin/Build$(XA.Build.Configuration)/$(InstallerArtifactName)
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
displayName: copy unsigned installers
- task: PublishPipelineArtifact@1
displayName: upload installers
inputs:
artifactName: $(InstallerArtifactName)
targetPath: xamarin-android/bin/Build$(XA.Build.Configuration)/$(InstallerArtifactName)

- task: PublishPipelineArtifact@1
displayName: upload nupkgs
inputs:
artifactName: $(NuGetArtifactName)
targetPath: $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)

- template: yaml-templates/upload-results.yaml
- template: yaml-templates/commercial-build.yaml
parameters:
solution: xamarin-android/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj
artifactName: Build Results - macOS
makeMSBuildArgs: /p:EnableRoslynAnalyzers=true

- stage: test
displayName: Test
dependsOn: mac_build
jobs:
- job: emulator_tests
displayName: Emulator
timeoutInMinutes: 240
timeoutInMinutes: 180
cancelTimeoutInMinutes: 2
strategy:
matrix:
Android21:
apiLevel: 21
Android23:
apiLevel: 23
Android24:
apiLevel: 24
Android26:
apiLevel: 26
Android28:
apiLevel: 28
Android21-x86:
avdApiLevel: 21
avdAbi: x86
Android23-x86:
avdApiLevel: 23
avdAbi: x86
Android24-x86:
avdApiLevel: 24
avdAbi: x86
Android26-x86_64:
avdApiLevel: 26
avdAbi: x86_64
Android28-x86_64:
avdApiLevel: 28
avdAbi: x86_64
pool:
vmImage: $(HostedMacImage)
workspace:
clean: all
variables:
- group: Xamarin-Secrets
- group: xamops-azdev-secrets
steps:
- template: yaml-templates/setup-test-environment.yaml
parameters:
Expand All @@ -191,24 +110,28 @@ stages:
--s=Required --auto-provision=yes --auto-provision-uses-sudo=yes --no-emoji --run-mode=CI
displayName: install required brew tools and prepare java.interop
- script:>
- script: >
mono $(System.DefaultWorkingDirectory)/build-tools/xaprepare/xaprepare/bin/$(XA.Build.Configuration)/xaprepare.exe
--s=EmulatorTestDependencies --no-emoji --run-mode=CI
displayName: install emulator
- script: echo "##vso[task.setvariable variable=Java8SdkDirectory]$HOME/Library/Android/$(XA.Jdk8.Folder)"
displayName: set Java8SdkDirectory

- task: MSBuild@1
displayName: shut down emulator
displayName: install and launch emulator
inputs:
solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj
configuration: $(XA.Build.Configuration)
msbuildArguments: /t:InstallAvdImage;AcquireAndroidTarget /p:TestAvdApiLevel=$(apiLevel) /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/install-emulator-$(apiLevel).binlog
msbuildArguments: /t:InstallAvdImage;AcquireAndroidTarget /p:TestAvdApiLevel=$(avdApiLevel) /p:TestAvdAbi=$(avdAbi) /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/install-emulator-$(avdApiLevel).binlog

- template: yaml-templates/apk-instrumentation.yaml
parameters:
configuration: $(XA.Build.Configuration)
testName: Mono.Android_Tests
testName: Mono.Android_Tests-$(avdApiLevel)-$(avdAbi)
project: tests/Mono.Android-Tests/Mono.Android-Tests.csproj
testResultsFiles: TestResult-Mono.Android_Tests-$(XA.Build.Configuration).xml
extraBuildArgs: /p:TestAvdApiLevel=$(avdApiLevel) /p:TestAvdAbi=$(avdAbi)
artifactName: Mono.Android_Tests-Signed.apk
artifactFolder: Default

Expand All @@ -217,12 +140,12 @@ stages:
inputs:
solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj
configuration: $(XA.Build.Configuration)
msbuildArguments: /t:AcquireAndroidTarget,ReleaseAndroidTarget /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog
msbuildArguments: /t:AcquireAndroidTarget,ReleaseAndroidTarget /p:TestAvdApiLevel=$(avdApiLevel) /p:TestAvdAbi=$(avdAbi) /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog
condition: always()

- template: yaml-templates/upload-results.yaml
parameters:
configuration: $(XA.Build.Configuration)
artifactName: Test Results - Emulator API $(apiLevel) - macOS
artifactName: Test Results - Emulator $(avdApiLevel)-$(avdAbi) - macOS

- template: yaml-templates/fail-on-issue.yaml
Loading

0 comments on commit 5d3b681

Please sign in to comment.