diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 64cf05bf2..826dbfcd6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,17 +1,19 @@ # See available software and versions on hosted agents here: https://docs.microsoft.com/azure/devops/pipelines/agents/hosted variables: - CurrentSemanticVersionBase: '1.1.0' + CurrentSemanticVersionBase: '1.3.0' PreviewNumber: $[counter(variables['CurrentSemanticVersionBase'], 1001)] CurrentSemanticVersion: '$(CurrentSemanticVersionBase)-preview$(PreviewNumber)' NugetPackageVersion: '$(CurrentSemanticVersion)' #MONO_VERSION: 6_4_0 #XCODE_VERSION: 11.4 - NETCORE_VERSION: '5.0.x' + NETCORE_VERSION: '6.0.x' NETCORE_TEST_VERSION_3_1: '3.1.x' NETCORE_TEST_VERSION_2_1: '2.1.x' RunPoliCheck: 'false' PathToMarkupCsproj: 'src/Markup/Xamarin.CommunityToolkit.Markup/Xamarin.CommunityToolkit.Markup.csproj' PathToCommunityToolkitCsproj: 'src/CommunityToolkit/Xamarin.CommunityToolkit/Xamarin.CommunityToolkit.csproj' + PathToMauiCompatMarkupCsproj: 'src/Markup/Xamarin.CommunityToolkit.Markup.MauiCompat/Xamarin.CommunityToolkit.Markup.MauiCompat.csproj' + PathToMauiCompatCommunityToolkitCsproj: 'src/CommunityToolkit/Xamarin.CommunityToolkit.MauiCompat/Xamarin.CommunityToolkit.MauiCompat.csproj' PathToSamplesSln: 'samples/XCT.Sample.sln' PathToCommunityToolkitUnitTestCsproj: 'src/CommunityToolkit/Xamarin.CommunityToolkit.UnitTests/Xamarin.CommunityToolkit.UnitTests.csproj' PathToMarkupUnitTestCsproj: 'src/Markup/Xamarin.CommunityToolkit.Markup.UnitTests/Xamarin.CommunityToolkit.Markup.UnitTests.csproj' @@ -43,6 +45,7 @@ pr: include: - main - develop + - 1.3.0-release-temp paths: exclude: - README.md @@ -179,6 +182,94 @@ jobs: inputs: targetType: F + - job: build_mauicompat + displayName: Build MauiCompat Library + pool: + vmImage: macos-11 + steps: + - powershell: | + $mauiCompatExists = Test-Path -Path "$(PathToMauiCompatCommunityToolkitCsproj)" + Write-Output "##vso[task.setvariable variable=MauiCompatExists]$mauiCompatExists" + - task: UseDotNet@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Install .NET SDK' + inputs: + version: $(NETCORE_VERSION) + includePreviewVersions: false + - task: CmdLine@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Install .NET MAUI workload' + inputs: + script: 'dotnet workload install maui' + - task: JavaToolInstaller@0 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Install Java SDK 11.0' + inputs: + versionSpec: '11' + jdkArchitectureOption: 'x64' + jdkSourceOption: 'PreInstalled' + - task: CmdLine@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Clear Local NuGet Cache' #https://github.com/actions/virtual-environments/issues/1090#issuecomment-748452120 + inputs: + script: 'nuget locals all -clear' + # if this is a tagged build, then update the version number + - powershell: | + $buildSourceBranch = "$(Build.SourceBranch)" + $tagVersion = $buildSourceBranch.Substring($buildSourceBranch.LastIndexOf("/") + 1) + Write-Host("Branch = $buildSourceBranch, Version = $tagVersion"); + Write-Host ("##vso[task.setvariable variable=NugetPackageVersion;]$tagVersion") + displayName: Set NuGet Version to Tag Number + condition: and(eq (variables['MauiCompatExists'], True), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) + # restore, build and pack the packages + - task: CmdLine@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Build Xamarin.CommunityToolkit.MauiCompat.csproj' + inputs: + script: 'dotnet build $(PathToMauiCompatCommunityToolkitCsproj) -c Release /p:ContinuousIntegrationBuild=true /p:Deterministic=false' + - task: CopyFiles@2 + condition: eq (variables['MauiCompatExists'], True) + inputs: + Contents: 'SignList.xml' + TargetFolder: '$(Build.ArtifactStagingDirectory)/nuget' + - task: CmdLine@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Pack Community Toolkit NuGets' + inputs: + script: 'dotnet pack $(PathToMauiCompatCommunityToolkitCsproj) -c Release /p:PackageVersion=$(NugetPackageVersion) /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)/nuget"' + - task: CmdLine@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Build Markup Project' + inputs: + script: 'dotnet build $(PathToMauiCompatMarkupCsproj) -c Release /p:ContinuousIntegrationBuild=true /p:Deterministic=false' + - task: CmdLine@2 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Pack Markup NuGet' + inputs: + script: 'dotnet pack $(PathToMauiCompatMarkupCsproj) -c Release /p:PackageVersion=$(NugetPackageVersion) /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)/nuget"' + # publish the packages + - task: PublishBuildArtifacts@1 + condition: eq (variables['MauiCompatExists'], True) + displayName: 'Publish Unsigned NuGets' + inputs: + artifactName: nuget + pathToPublish: '$(Build.ArtifactStagingDirectory)/nuget' + # make sure we are following the rules, but only on the main build + - ${{ if eq(variables['System.TeamProject'], 'devdiv') }}: + - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 + condition: not(startsWith(variables['Build.SourceBranch'], 'refs/tags/')) + displayName: Component Detection - Log + inputs: + scanType: LogOnly + - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 + condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/') + displayName: Component Detection - Report + - task: securedevelopmentteam.vss-secure-development-tools.build-task-policheck.PoliCheck@1 + condition: eq(variables['RunPoliCheck'], 'true') + displayName: 'PoliCheck' + inputs: + targetType: F + - job: build_macos displayName: Build macOS Library pool: diff --git a/src/CommunityToolkit/Xamarin.CommunityToolkit.UnitTests/Xamarin.CommunityToolkit.UnitTests.csproj b/src/CommunityToolkit/Xamarin.CommunityToolkit.UnitTests/Xamarin.CommunityToolkit.UnitTests.csproj index 9727a60b6..21900c8b4 100644 --- a/src/CommunityToolkit/Xamarin.CommunityToolkit.UnitTests/Xamarin.CommunityToolkit.UnitTests.csproj +++ b/src/CommunityToolkit/Xamarin.CommunityToolkit.UnitTests/Xamarin.CommunityToolkit.UnitTests.csproj @@ -3,6 +3,7 @@ netcoreapp2.1;netcoreapp3.1;net461 false + preview diff --git a/src/CommunityToolkit/Xamarin.CommunityToolkit/Xamarin.CommunityToolkit.csproj b/src/CommunityToolkit/Xamarin.CommunityToolkit/Xamarin.CommunityToolkit.csproj index c5e1e74c0..56153da4a 100644 --- a/src/CommunityToolkit/Xamarin.CommunityToolkit/Xamarin.CommunityToolkit.csproj +++ b/src/CommunityToolkit/Xamarin.CommunityToolkit/Xamarin.CommunityToolkit.csproj @@ -32,6 +32,7 @@ false portable NU1701 + preview diff --git a/src/Markup/Xamarin.CommunityToolkit.Markup.UnitTests/Xamarin.CommunityToolkit.Markup.UnitTests.csproj b/src/Markup/Xamarin.CommunityToolkit.Markup.UnitTests/Xamarin.CommunityToolkit.Markup.UnitTests.csproj index b28dd68d3..78a9f55c9 100644 --- a/src/Markup/Xamarin.CommunityToolkit.Markup.UnitTests/Xamarin.CommunityToolkit.Markup.UnitTests.csproj +++ b/src/Markup/Xamarin.CommunityToolkit.Markup.UnitTests/Xamarin.CommunityToolkit.Markup.UnitTests.csproj @@ -3,6 +3,7 @@ netcoreapp2.1;netcoreapp3.1;net461 false + preview diff --git a/src/Markup/Xamarin.CommunityToolkit.Markup/Xamarin.CommunityToolkit.Markup.csproj b/src/Markup/Xamarin.CommunityToolkit.Markup/Xamarin.CommunityToolkit.Markup.csproj index 0d054abcc..c9de0ff28 100644 --- a/src/Markup/Xamarin.CommunityToolkit.Markup/Xamarin.CommunityToolkit.Markup.csproj +++ b/src/Markup/Xamarin.CommunityToolkit.Markup/Xamarin.CommunityToolkit.Markup.csproj @@ -28,6 +28,7 @@ true xamarin,xamarin.forms,toolkit,kit,communitytoolkit,xamarincommunitytoolkit,markup,csharpformarkup,csharp,csharpmarkup Debug;Release + preview