diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index a25c5c5732c..28c555d482b 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -63,7 +63,7 @@ variables: # - This is a non-fork branch with name containing "mono-" (for Mono bumps) IsMonoBranch: $[and(eq(variables['XA.Commercial.Build'], 'true'), ne(variables['System.PullRequest.IsFork'], 'True'), or(contains(variables['Build.SourceBranchName'], 'mono-'), contains(variables['System.PullRequest.SourceBranch'], 'mono-')))] RunAllTests: $[or(eq(variables['XA.RunAllTests'], true), eq(variables['IsMonoBranch'], true))] - DotNetNUnitCategories: '& TestCategory != DotNetIgnore & TestCategory != AOT & TestCategory != FSharp & TestCategory != LibraryProjectZip & TestCategory != MkBundle & TestCategory != MonoSymbolicate & TestCategory != PackagesConfig & TestCategory != StaticProject' + DotNetNUnitCategories: '& TestCategory != DotNetIgnore & TestCategory != AOT & TestCategory != LibraryProjectZip & TestCategory != MkBundle & TestCategory != MonoSymbolicate & TestCategory != PackagesConfig & TestCategory != StaticProject' # Stage and Job "display names" are shortened because they are combined to form the name of the corresponding GitHub check. stages: diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs index 025deb47e71..a5ade41abd8 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs @@ -547,22 +547,21 @@ void CheckCustomView (Xamarin.Tools.Zip.ZipArchive zip, params string [] paths) [TestCaseSource (nameof (ReleaseLanguage))] public void CheckResourceDesignerIsCreated (bool isRelease, ProjectLanguage language) { - //Due to the MSBuild project automatically sorting , we can't possibly get the F# projects to build here on Windows - // This API is sorting them: https://github.com/xamarin/xamarin-android/blob/c588bfe07aab224c97996a264579f4d4f18a151c/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetXamarinProject.cs#L117 bool isFSharp = language == XamarinAndroidProjectLanguage.FSharp; - if (IsWindows && isFSharp) { - Assert.Ignore ("Skipping this F# test on Windows."); - } - if (Builder.UseDotNet && isFSharp) { - Assert.Ignore ("Skipping this F# test under 'dotnet'."); - } var proj = new XamarinAndroidApplicationProject () { Language = language, IsRelease = isRelease, }; + if (Builder.UseDotNet) { + proj.AddDotNetCompatPackages (); + //TODO: temporary until this is fixed: https://github.com/mono/linker/issues/1448 + if (isFSharp && isRelease) { + proj.AndroidLinkModeRelease = AndroidLinkMode.None; + } + } proj.SetProperty ("AndroidUseIntermediateDesignerFile", "True"); - using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { + using (var b = CreateApkBuilder ()) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); // Intermediate designer file support is not compatible with F# projects using Xamarin.Android.FSharp.ResourceProvider. var outputFile = isFSharp ? Path.Combine (Root, b.ProjectDirectory, "Resources", "Resource.designer" + proj.Language.DefaultDesignerExtension) @@ -582,21 +581,19 @@ public void CheckResourceDesignerIsCreated (bool isRelease, ProjectLanguage lang [TestCaseSource(nameof (ReleaseLanguage))] public void CheckResourceDesignerIsUpdatedWhenReadOnly (bool isRelease, ProjectLanguage language) { - //Due to the MSBuild project automatically sorting , we can't possibly get the F# projects to build here on Windows - // This API is sorting them: https://github.com/xamarin/xamarin-android/blob/c588bfe07aab224c97996a264579f4d4f18a151c/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetXamarinProject.cs#L117 bool isFSharp = language == XamarinAndroidProjectLanguage.FSharp; - if (IsWindows && isFSharp) { - Assert.Ignore ("Skipping this F# test on Windows."); - } - if (Builder.UseDotNet && isFSharp) { - Assert.Ignore ("Skipping this F# test under 'dotnet'."); - } - var proj = new XamarinAndroidApplicationProject () { Language = language, IsRelease = isRelease, }; - using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { + if (Builder.UseDotNet) { + proj.AddDotNetCompatPackages (); + //TODO: temporary until this is fixed: https://github.com/mono/linker/issues/1448 + if (isFSharp && isRelease) { + proj.AndroidLinkModeRelease = AndroidLinkMode.None; + } + } + using (var b = CreateApkBuilder ()) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); var designerPath = GetResourceDesignerPath (b, proj); var attr = File.GetAttributes (designerPath); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs index d1fe05f0c40..e296b43c9db 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs @@ -426,13 +426,13 @@ public static void AddDotNetCompatPackages (this IShortFormProject project) }, } }; - public static Package Xamarin_Android_FSharp_ResourceProvider_Runtime = new Package { + public static Package Xamarin_Android_FSharp_ResourceProvider = new Package { Id = "Xamarin.Android.FSharp.ResourceProvider", - Version = "1.0.0.28", - TargetFramework = "monoandroid71", + Version = "1.0.1", + TargetFramework = "monoandroid81", References = { new BuildItem.Reference ("Xamarin.Android.FSharp.ResourceProvider.Runtime") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.FSharp.ResourceProvider.1.0.0.28\\lib\\Xamarin.Android.FSharp.ResourceProvider.Runtime.dll" + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.FSharp.ResourceProvider.1.0.1\\lib\\monoandroid81\\Xamarin.Android.FSharp.ResourceProvider.Runtime.dll" }, } }; diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidCommonProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidCommonProject.cs index a470605bea3..00c175f6470 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidCommonProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidCommonProject.cs @@ -86,9 +86,14 @@ public override ProjectLanguage Language { // add the stuff needed for FSharp References.Add (new BuildItem.Reference ("System.Numerics")); PackageReferences.Add (KnownPackages.FSharp_Core_Latest); - PackageReferences.Add (KnownPackages.Xamarin_Android_FSharp_ResourceProvider_Runtime); + PackageReferences.Add (KnownPackages.Xamarin_Android_FSharp_ResourceProvider); Sources.Remove (resourceDesigner); OtherBuildItems.Add (new BuildItem.NoActionResource (() => "Resources\\Resource.designer" + Language.DefaultDesignerExtension) { TextContent = () => string.Empty }); + + // NOTE: workaround for https://github.com/dotnet/sdk/issues/12954 + if (Builder.UseDotNet) { + SetProperty ("ProduceReferenceAssembly", "false"); + } } } } diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 26a223dafbe..12a24fe80a8 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -487,7 +487,7 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. + Condition=" '$(Language)' == 'C#' and '$(AndroidUseIntermediateDesignerFile)' == 'true' and '$(ManagedDesignTimeBuild)' != 'true' ">