From 078323ffd4513f57255e03e77da1607ee140f610 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 16 Dec 2019 14:36:28 -0500 Subject: [PATCH 01/14] Pass yes to apt-get installation prompts --- .../xaprepare/xaprepare/Application/Program.DebianLinux.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/xaprepare/xaprepare/Application/Program.DebianLinux.cs b/build-tools/xaprepare/xaprepare/Application/Program.DebianLinux.cs index fe0e5e70844..9ef10de5d20 100644 --- a/build-tools/xaprepare/xaprepare/Application/Program.DebianLinux.cs +++ b/build-tools/xaprepare/xaprepare/Application/Program.DebianLinux.cs @@ -38,7 +38,7 @@ protected override bool CheckWhetherInstalled () public override async Task Install () { - var runner = new ProcessRunner ("sudo", "apt-get", "-f", "-u", "install", PackageName) { + var runner = new ProcessRunner ("sudo", "apt-get", "-y", "-f", "-u", "install", PackageName) { EchoStandardOutput = true, EchoStandardError = true, ProcessTimeout = TimeSpan.FromMinutes (30), From a7a3a684dda1957b2b9621cecce17d8b73b12471 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 16 Dec 2019 14:55:04 -0500 Subject: [PATCH 02/14] Remove duplicate ubuntu tools These items are already included in LinuxDebianCommon. The i386 versions also no longer appear to exist? --- .../ConfigAndData/Dependencies/Linux.Debian.cs | 1 - .../Dependencies/Linux.UbuntuCommon.cs | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.Debian.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.Debian.cs index c21e9c880c0..165d348259a 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.Debian.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.Debian.cs @@ -6,7 +6,6 @@ namespace Xamarin.Android.Prepare class LinuxDebian : LinuxDebianCommon { static readonly List packages = new List { - new DebianLinuxProgram ("zlib1g-dev"), new DebianLinuxProgram ("libtool-bin", "libtool"), }; diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.UbuntuCommon.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.UbuntuCommon.cs index fcdd32b3898..2fb35695b6e 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.UbuntuCommon.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.UbuntuCommon.cs @@ -5,11 +5,6 @@ namespace Xamarin.Android.Prepare { abstract partial class LinuxUbuntuCommon : LinuxDebianCommon { - static readonly List commonPackages64bit = new List { - new DebianLinuxProgram ("linux-libc-dev:i386"), - new DebianLinuxProgram ("zlib1g-dev:i386"), - }; - static readonly List libtoolPackages = new List { new DebianLinuxProgram ("libtool-bin", "libtool"), }; @@ -20,14 +15,6 @@ protected LinuxUbuntuCommon (Context context) : base (context) {} - protected override void InitializeDependencies () - { - base.InitializeDependencies (); - - if (Is64Bit) - Dependencies.AddRange (commonPackages64bit); - } - protected override bool InitOS () { if (!base.InitOS ()) From 74009f6f2da7d0848e0ce79e5657bffa482f3ba8 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 7 Jan 2020 14:33:01 -0500 Subject: [PATCH 03/14] [build] Fix local/PR `make jenkins` invocations We shouldn't set all CI related xaprepare flags when building locally. We also shouldn't be passing `-a` when the "PR" build CI flags are set. --- build-tools/scripts/BuildEverything.mk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/build-tools/scripts/BuildEverything.mk b/build-tools/scripts/BuildEverything.mk index 1dcf266ad28..4b96b1fba68 100644 --- a/build-tools/scripts/BuildEverything.mk +++ b/build-tools/scripts/BuildEverything.mk @@ -10,8 +10,14 @@ # The other targets depended upon by leeroy also require rules.mk to be present and thus they # are invoked in the same way framework-assemblies is # +# Local `make jenkins` invocations should build everything by default. We need to ensure `-a` is passed to xaprepare when no CI flags are set. +# jenkins: - $(MAKE) PREPARE_CI=1 prepare +ifeq ($(PREPARE_CI_PR)$(PREPARE_CI),00) + $(MAKE) PREPARE_ARGS=-a prepare +else + $(MAKE) prepare +endif $(MAKE) leeroy $(ZIP_OUTPUT) ifeq ($(XA_INVERTED_COMMERCIAL_BUILD),true) $(MAKE) commercial From de5037ccf4f7508d8bd16e302449ffe4e48891f9 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 9 Jan 2020 15:56:35 -0500 Subject: [PATCH 04/14] Write only the enabled ABIs to rules.mk --- .../Application/GeneratedMakeRulesFile.cs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs b/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs index 31fd8b9cb03..7e6f06564d2 100644 --- a/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs +++ b/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; namespace Xamarin.Android.Prepare { @@ -87,6 +88,10 @@ void Generate (Context context, StreamWriter sw) stableApiLevels.Add (api); } + var enabledJitAbis = AbiNames.AllJitAbis.Where (a => context.IsTargetJitAbiEnabled (a)); + var enabledHostAbis = AbiNames.AllHostAbis.Where (a => context.IsHostJitAbiEnabled (a)); + var enabledAotAbis = AbiNames.AllAotAbis.Where (a => context.IsTargetAotAbiEnabled (a)); + WriteVariable ("ALL_API_LEVELS", ToValue (allApiLevels)); WriteVariable ("ALL_PLATFORM_IDS", ToValue (allPlatformIDs)); WriteVariable ("ALL_FRAMEWORKS", ToValue (allFrameworks)); @@ -94,9 +99,9 @@ void Generate (Context context, StreamWriter sw) WriteVariable ("STABLE_API_LEVELS", ToValue (stableApiLevels)); WriteVariable ("FRAMEWORKS", ToValue (frameworks)); WriteVariable ("STABLE_FRAMEWORKS", ToValue (stableFrameworks)); - WriteVariable ("ALL_JIT_ABIS", ToValue (AbiNames.AllJitAbis)); - WriteVariable ("ALL_HOST_ABIS", ToValue (AbiNames.AllHostAbis)); - WriteVariable ("ALL_AOT_ABIS", ToValue (AbiNames.AllAotAbis)); + WriteVariable ("ALL_JIT_ABIS", ToValue (enabledJitAbis.ToList())); + WriteVariable ("ALL_HOST_ABIS", ToValue (enabledHostAbis.ToList ())); + WriteVariable ("ALL_AOT_ABIS", ToValue (enabledAotAbis.ToList ())); WriteVariable ("ANDROID_TOOLCHAIN_DIR", context.Properties.GetRequiredValue (KnownProperties.AndroidToolchainDirectory)); if (context.MonoOptions != null && context.MonoOptions.Count > 0) { WriteVariable ("MONO_OPTIONS", ToValue (context.MonoOptions)); @@ -104,9 +109,9 @@ void Generate (Context context, StreamWriter sw) } sw.WriteLine ("_MSBUILD_ARGS = \\"); - sw.WriteLine ($"\t/p:{KnownProperties.AndroidSupportedTargetJitAbis}={Utilities.ToXamarinAndroidPropertyValue (AbiNames.AllJitAbis)} \\"); - sw.WriteLine ($"\t/p:{KnownProperties.AndroidSupportedHostJitAbis}={Utilities.ToXamarinAndroidPropertyValue (AbiNames.AllHostAbis)} \\"); - sw.WriteLine ($"\t/p:{KnownProperties.AndroidSupportedTargetAotAbis}={Utilities.ToXamarinAndroidPropertyValue (AbiNames.AllAotAbis)}"); + sw.WriteLine ($"\t/p:{KnownProperties.AndroidSupportedTargetJitAbis}={context.Properties.GetRequiredValue (KnownProperties.AndroidSupportedTargetJitAbis)} \\"); + sw.WriteLine ($"\t/p:{KnownProperties.AndroidSupportedHostJitAbis}={context.Properties.GetRequiredValue (KnownProperties.AndroidSupportedHostJitAbis)} \\"); + sw.WriteLine ($"\t/p:{KnownProperties.AndroidSupportedTargetAotAbis}={context.Properties.GetRequiredValue (KnownProperties.AndroidSupportedTargetAotAbis)}"); OutputOSVariables (context, sw); From c73c32fd653502a953980fe961db599dd7b4434a Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 15 Jan 2020 13:18:02 -0500 Subject: [PATCH 05/14] Add nuget and devscripts deb packages --- .../xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs index da6c79854ad..3ec52a5097f 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs @@ -11,6 +11,7 @@ abstract class LinuxDebianCommon : Linux new DebianLinuxProgram ("cmake"), new DebianLinuxProgram ("build-essential"), new DebianLinuxProgram ("curl"), + new DebianLinuxProgram ("devscripts"), new DebianLinuxProgram ("gcc"), new DebianLinuxProgram ("g++"), new DebianLinuxProgram ("g++-mingw-w64"), @@ -22,6 +23,7 @@ abstract class LinuxDebianCommon : Linux new DebianLinuxProgram ("linux-libc-dev"), new DebianLinuxProgram ("make"), new DebianLinuxProgram ("ninja-build", "ninja"), + new DebianLinuxProgram ("nuget"), new DebianLinuxProgram ("p7zip-full", "7z"), new DebianLinuxProgram ("sqlite3"), new DebianLinuxProgram ("vim-common"), From f9fc852ed20b8235b8cb02be764075250492f510 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 15 Jan 2020 14:51:43 -0500 Subject: [PATCH 06/14] Add OSS pipeline file w/ linux build --- .../automation/azure-pipelines-oss.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 build-tools/automation/azure-pipelines-oss.yaml diff --git a/build-tools/automation/azure-pipelines-oss.yaml b/build-tools/automation/azure-pipelines-oss.yaml new file mode 100644 index 00000000000..7770a832faf --- /dev/null +++ b/build-tools/automation/azure-pipelines-oss.yaml @@ -0,0 +1,57 @@ +# Xamarin.Android-OSS Pipeline + +name: $(Build.SourceBranchName)-$(Build.SourceVersion)-$(Rev:r) + +trigger: + - master + - d16-* + +pr: + - master + - d16-* + +# Global variables +variables: + OSSBuildConfiguration: Release + +jobs: +- job: linux_build_package + displayName: Linux Build + pool: + vmImage: ubuntu-18.04 + timeoutInMinutes: 180 + cancelTimeoutInMinutes: 5 + workspace: + clean: all + steps: + - checkout: self + submodules: recursive + + - task: NuGetToolInstaller@1 + displayName: 'Use NuGet 5.x' + inputs: + versionSpec: 5.x + + - script: make jenkins V=1 PREPARE_CI_PR=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(OSSBuildConfiguration) + displayName: make jenkins + + - script: make package-deb V=1 CONFIGURATION=$(OSSBuildConfiguration) + displayName: make package-deb + + - script: | + mkdir -p $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*xamarin.android*.tar* $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*.changes $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*.dsc $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*.deb $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + displayName: copy linux artifacts + + - task: PublishPipelineArtifact@1 + displayName: publish linux artifacts + inputs: + artifactName: Linux Packages + targetPath: $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + + - template: yaml-templates/upload-results.yaml + parameters: + artifactName: OSS Build Results - Linux From 98f506aa1cb9e7213688565c0b03f39732dfc878 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 15 Jan 2020 15:13:37 -0500 Subject: [PATCH 07/14] Add cli-common-dev deb package --- .../xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs index 3ec52a5097f..3028d6f2e29 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/Linux.DebianCommon.cs @@ -10,6 +10,7 @@ abstract class LinuxDebianCommon : Linux new DebianLinuxProgram ("automake"), new DebianLinuxProgram ("cmake"), new DebianLinuxProgram ("build-essential"), + new DebianLinuxProgram ("cli-common-dev"), new DebianLinuxProgram ("curl"), new DebianLinuxProgram ("devscripts"), new DebianLinuxProgram ("gcc"), From 531e0c59c2a23ff76aa632868aea63a8b912a311 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 15 Jan 2020 17:10:24 -0500 Subject: [PATCH 08/14] Clean up toolchain cache after provisioning on hosted machines --- build-tools/automation/azure-pipelines-oss.yaml | 13 +++++++------ .../xaprepare/xaprepare/Application/Context.cs | 15 +++++++++++++++ .../xaprepare/Steps/Step_Android_SDK_NDK.cs | 4 ++++ .../xaprepare/Steps/Step_DownloadMonoArchive.cs | 3 +++ .../Steps/Step_InstallCorrettoOpenJDK.cs | 3 +++ 5 files changed, 32 insertions(+), 6 deletions(-) diff --git a/build-tools/automation/azure-pipelines-oss.yaml b/build-tools/automation/azure-pipelines-oss.yaml index 7770a832faf..b7d2756a760 100644 --- a/build-tools/automation/azure-pipelines-oss.yaml +++ b/build-tools/automation/azure-pipelines-oss.yaml @@ -39,19 +39,20 @@ jobs: displayName: make package-deb - script: | - mkdir -p $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts - cp $(System.DefaultWorkingDirectory)/*xamarin.android*.tar* $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts - cp $(System.DefaultWorkingDirectory)/*.changes $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts - cp $(System.DefaultWorkingDirectory)/*.dsc $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts - cp $(System.DefaultWorkingDirectory)/*.deb $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + mkdir -p $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*xamarin.android*.tar* $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*.changes $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*.dsc $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*.deb $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts displayName: copy linux artifacts - task: PublishPipelineArtifact@1 displayName: publish linux artifacts inputs: artifactName: Linux Packages - targetPath: $(System.DefaultWorkingDirectory)/bin/BuildRelease/linux-artifacts + targetPath: $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts - template: yaml-templates/upload-results.yaml parameters: + configuration: $(OSSBuildConfiguration) artifactName: OSS Build Results - Linux diff --git a/build-tools/xaprepare/xaprepare/Application/Context.cs b/build-tools/xaprepare/xaprepare/Application/Context.cs index 8205be94df8..eb0822bdeda 100644 --- a/build-tools/xaprepare/xaprepare/Application/Context.cs +++ b/build-tools/xaprepare/xaprepare/Application/Context.cs @@ -340,6 +340,21 @@ public string DebugFileExtension { /// public bool MonoArchiveDownloaded { get; set; } + /// + /// Determines whether or not we are running on a hosted azure pipelines agent. + /// These agents have certain limitations, the most pressing being the amount of available storage. + /// https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#capabilities-and-limitations. + /// + public bool IsRunningOnHostedAzureAgent { + get { + string agentNameValue = Environment.GetEnvironmentVariable ("AGENT_NAME"); + bool hasHostedAgentName = !string.IsNullOrEmpty (agentNameValue) && agentNameValue.ToUpperInvariant ().Contains ("AZURE PIPELINES"); + string serverTypeValue = Environment.GetEnvironmentVariable ("SYSTEM_SERVERTYPE"); + bool isHostedServerType = !string.IsNullOrEmpty (serverTypeValue) && serverTypeValue.ToUpperInvariant ().Contains ("HOSTED"); + return hasHostedAgentName || isHostedServerType; + } + } + static Context () { Instance = new Context (); diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_Android_SDK_NDK.cs b/build-tools/xaprepare/xaprepare/Steps/Step_Android_SDK_NDK.cs index d5b1d729a88..109a1a44fd5 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_Android_SDK_NDK.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_Android_SDK_NDK.cs @@ -163,6 +163,10 @@ async Task Unpack (Context context, string tempDirRoot, AndroidPackage pkg) throw new InvalidOperationException ($"Failed to unpack {pkg.LocalPackagePath}"); } + // Clean up zip after extraction if running on a hosted azure pipelines agent. + if (context.IsRunningOnHostedAzureAgent) + Utilities.DeleteFileSilent (pkg.LocalPackagePath); + if (pkg.Component.NoSubdirectory) { Utilities.MoveDirectoryContentsRecursively (tempDir, pkg.DestinationDir); return; diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_DownloadMonoArchive.cs b/build-tools/xaprepare/xaprepare/Steps/Step_DownloadMonoArchive.cs index 9e357ad64c4..0a4f55af786 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_DownloadMonoArchive.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_DownloadMonoArchive.cs @@ -126,6 +126,9 @@ async Task DownloadAndUpackIfNeeded (Context context, string name, string Utilities.MoveDirectoryContentsRecursively (tempDir, destinationDirectory, resetFileTimestamp: true); } finally { Utilities.DeleteDirectorySilent (tempDir); + // Clean up zip after extraction if running on a hosted azure pipelines agent. + if (context.IsRunningOnHostedAzureAgent) + Utilities.DeleteFileSilent (localPath); } return true; diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_InstallCorrettoOpenJDK.cs b/build-tools/xaprepare/xaprepare/Steps/Step_InstallCorrettoOpenJDK.cs index a3e04d01bf7..45d1b3983f3 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_InstallCorrettoOpenJDK.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_InstallCorrettoOpenJDK.cs @@ -61,6 +61,9 @@ protected override async Task Execute (Context context) Utilities.MoveDirectoryContentsRecursively (rootDir, corettoInstallDir); } finally { Utilities.DeleteDirectorySilent (tempDir); + // Clean up zip after extraction if running on a hosted azure pipelines agent. + if (context.IsRunningOnHostedAzureAgent) + Utilities.DeleteFileSilent (localPackagePath); } return true; From ac01f025a8822fe9db83ab69fdb990366e275e52 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 23 Jan 2020 12:10:11 -0500 Subject: [PATCH 09/14] [build] Add libmono-btls-shared to exclusion list Should hopefully fix the following Linux packaging error: dh_clideps: Error: Missing shlibs entry: libmono-btls-shared.so or libmono-btls-shared for: System.dll! --- build-tools/debian-metadata/rules | 1 + 1 file changed, 1 insertion(+) diff --git a/build-tools/debian-metadata/rules b/build-tools/debian-metadata/rules index 0823a8ce7cb..e2d9b9313b1 100755 --- a/build-tools/debian-metadata/rules +++ b/build-tools/debian-metadata/rules @@ -40,6 +40,7 @@ override_dh_clideps: --exclude-moduleref=java-interop \ --exclude-moduleref=libfam.so.0 \ --exclude-moduleref=libgamin-1.so.0 \ + --exclude-moduleref=libmono-btls-shared.so \ --exclude-moduleref=lzo.dll \ --exclude-moduleref=mscoree.dll \ --exclude-moduleref=mscorwks.dll \ From 78325a9d08cd06ea7448a757111794953add5193 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 23 Jan 2020 15:54:00 -0500 Subject: [PATCH 10/14] Update libmono-btls-shared exclusion to not include extension --- build-tools/debian-metadata/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/debian-metadata/rules b/build-tools/debian-metadata/rules index e2d9b9313b1..cf380523ba9 100755 --- a/build-tools/debian-metadata/rules +++ b/build-tools/debian-metadata/rules @@ -40,7 +40,7 @@ override_dh_clideps: --exclude-moduleref=java-interop \ --exclude-moduleref=libfam.so.0 \ --exclude-moduleref=libgamin-1.so.0 \ - --exclude-moduleref=libmono-btls-shared.so \ + --exclude-moduleref=libmono-btls-shared \ --exclude-moduleref=lzo.dll \ --exclude-moduleref=mscoree.dll \ --exclude-moduleref=mscorwks.dll \ From d1cadef7fea92129702eab82fd2b749d722362e4 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Fri, 24 Jan 2020 11:19:06 -0500 Subject: [PATCH 11/14] [ci] Install mono preview before linx build --- build-tools/automation/azure-pipelines-oss.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/build-tools/automation/azure-pipelines-oss.yaml b/build-tools/automation/azure-pipelines-oss.yaml index b7d2756a760..052199c137d 100644 --- a/build-tools/automation/azure-pipelines-oss.yaml +++ b/build-tools/automation/azure-pipelines-oss.yaml @@ -32,6 +32,15 @@ jobs: inputs: versionSpec: 5.x + - script: | + sudo apt-get install -y gnupg ca-certificates + sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF + echo "deb https://download.mono-project.com/repo/ubuntu preview-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list + sudo apt-get update + sudo apt-get install -y mono-devel + sudo apt-get install -y ca-certificates-mono + displayName: install mono preview + - script: make jenkins V=1 PREPARE_CI_PR=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(OSSBuildConfiguration) displayName: make jenkins From 0a81242e7159118d4c2ff1159271696f1479573f Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Fri, 24 Jan 2020 14:47:05 -0500 Subject: [PATCH 12/14] Update README.md to include OSS Linux build status --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 28c545e665e..93d922bf240 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ Xamarin.Android provides open-source bindings of the Android SDK for use with [oss-macOS-x86_64-icon]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/badge/icon [oss-macOS-x86_64-status]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/ -[oss-ubuntu-x86_64-icon]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/badge/icon -[oss-ubuntu-x86_64-status]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/ +[oss-ubuntu-x86_64-icon]: https://dev.azure.com/xamarin/public/_apis/build/status/Xamarin.Android-OSS?branchName=master +[oss-ubuntu-x86_64-status]: https://dev.azure.com/xamarin/public/_build/latest?definitionId=48 [oss-windows-x86_64-icon]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/7212/badge [oss-windows-x86_64-status]: https://devdiv.visualstudio.com/DevDiv/Default/_build/index?definitionId=7212 From 36957983d573cb5c231603d179368c4c2444bab5 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 27 Jan 2020 13:34:33 -0500 Subject: [PATCH 13/14] Only include tar.bz2 linux artifact --- build-tools/automation/azure-pipelines-oss.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/automation/azure-pipelines-oss.yaml b/build-tools/automation/azure-pipelines-oss.yaml index 052199c137d..c6a0b5cbfc3 100644 --- a/build-tools/automation/azure-pipelines-oss.yaml +++ b/build-tools/automation/azure-pipelines-oss.yaml @@ -49,7 +49,7 @@ jobs: - script: | mkdir -p $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts - cp $(System.DefaultWorkingDirectory)/*xamarin.android*.tar* $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts + cp $(System.DefaultWorkingDirectory)/*xamarin.android*.tar.bz2 $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts cp $(System.DefaultWorkingDirectory)/*.changes $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts cp $(System.DefaultWorkingDirectory)/*.dsc $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts cp $(System.DefaultWorkingDirectory)/*.deb $(System.DefaultWorkingDirectory)/bin/Build$(OSSBuildConfiguration)/linux-artifacts From 2146e73568b712351712933e31903e912108f571 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 27 Jan 2020 15:30:29 -0500 Subject: [PATCH 14/14] Remove libzip-dev deps Context: https://github.com/xamarin/xamarin-android/pull/4122 --- build-tools/automation/build.linux.groovy | 1 - build-tools/debian-metadata/control | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/build-tools/automation/build.linux.groovy b/build-tools/automation/build.linux.groovy index 41798d79bff..ffe138e7690 100644 --- a/build-tools/automation/build.linux.groovy +++ b/build-tools/automation/build.linux.groovy @@ -34,7 +34,6 @@ def chRootPackages = ''' libtool libtool-bin libz-mingw-w64-dev - libzip-dev linux-libc-dev:i386 mono-csharp-shell mono-devel diff --git a/build-tools/debian-metadata/control b/build-tools/debian-metadata/control index f6421ca14cb..753b1f60406 100644 --- a/build-tools/debian-metadata/control +++ b/build-tools/debian-metadata/control @@ -2,7 +2,7 @@ Source: xamarin.android-oss Section: unknown Priority: optional Maintainer: Xamarin -Build-Depends: debhelper (>=9), cli-common-dev (>= 0.9~), libzip-dev +Build-Depends: debhelper (>=9), cli-common-dev (>= 0.9~) Standards-Version: 3.9.6 Homepage: https://www.xamarin.com/platform Vcs-Git: https://github.com/xamarin/xamarin-android.git