Add switches to build Control Gallery using the nuget produced by the build (#8937)

* Build Control Gallery with nugets

* - sync pipelines

* - add team project check

* - fix output dir to match for ui tests

* - preserve dual screen
This commit is contained in:
Shane Neuville 2020-03-11 05:31:24 -06:00 коммит произвёл GitHub
Родитель 112a203f77
Коммит 1532d46f5f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
34 изменённых файлов: 329 добавлений и 156 удалений

12
DevopsNuget.config Normal file
Просмотреть файл

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear/>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="nightly" value="https://aka.ms/xf-ci/index.json" />
<add key="nuget" value="../s/Nuget" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
</configuration>

Просмотреть файл

@ -21,4 +21,4 @@
<Target Name="GitVersion" />
<Import Condition="'$(EnvironmentBuildPropsImported)' != 'True'" Project="Environment.Build.props" />
</Project>
</Project>

Просмотреть файл

@ -3,6 +3,5 @@
<PackageReference Include="GitInfo" Version="2.0.20" PrivateAssets="All" />
<PackageReference Include="MSBuilder.GenerateAssemblyInfo" Version="0.2.1" PrivateAssets="All" />
</ItemGroup>
<Import Project="Version.targets" />
</Project>

Просмотреть файл

@ -5,6 +5,7 @@
<PropertyGroup Condition="'$(CI)' == ''">
<CI>false</CI>
<CI Condition="'$(TF_BUILD)' == 'true'">true</CI>
@ -19,6 +20,18 @@
-->
</PropertyGroup>
<PropertyGroup Condition="'$(CI)' == 'true'">
<_XamarinFormsVersion>$(BUILD_BUILDNUMBER.Split(`+`)[0])</_XamarinFormsVersion>
<XamarinFormsVersion Condition="Exists('$(BUILD_SOURCESDIRECTORY)/Nuget/Xamarin.Forms.$(_XamarinFormsVersion).nupkg')" >$(_XamarinFormsVersion)</XamarinFormsVersion>
</PropertyGroup>
<!-- Build from source or nugets-->
<PropertyGroup>
<XamarinFormsVersion Condition="'$(XamarinFormsVersion)' == ''"></XamarinFormsVersion>
<FromSource Condition="'$(XamarinFormsVersion)' != ''">false</FromSource>
<FromSource Condition="'$(FromSource)' == ''">true</FromSource>
</PropertyGroup>
<PropertyGroup>
<Use2017 Condition="'$(Use2017)' == '' AND '$(MSBuildRuntimeType)' == 'Mono'">$(FrameworkSDKRoot.Contains('/Versions/5'))</Use2017>
<Use2017 Condition="'$(Use2017)' == '' AND '$(MSBuildAssemblyVersion)' &lt; '16.0'">true</Use2017>
@ -30,4 +43,4 @@
<AndroidTargetFrameworks Condition="'$(Use2017)' == 'true'">MonoAndroid90;</AndroidTargetFrameworks>
<AndroidTargetFrameworks Condition="'$(Use2017)' == 'false'">MonoAndroid90;MonoAndroid10.0;</AndroidTargetFrameworks>
</PropertyGroup>
</Project>
</Project>

16
Nuget.targets Normal file
Просмотреть файл

@ -0,0 +1,16 @@
<Project>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="$(XamarinFormsVersion)">
</PackageReference>
<PackageReference Include="Xamarin.Forms.Maps" Version="$(XamarinFormsVersion)">
</PackageReference>
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="$(XamarinFormsVersion)">
</PackageReference>
<PackageReference Include="Xamarin.Forms.DualScreen" Version="$(XamarinFormsVersion)">
</PackageReference>
</ItemGroup>
<ItemGroup Condition=" $(TargetFrameworkIdentifier.StartsWith('MonoAndroid')) ">
<PackageReference Include="Xamarin.Forms.AppLinks" Version="$(XamarinFormsVersion)">
</PackageReference>
</ItemGroup>
</Project>

4
Nuget/.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

Просмотреть файл

@ -2,7 +2,7 @@
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{39B3457F-01D8-43D0-8E84-D8C4F73CF48D}</ProjectGuid>

Просмотреть файл

@ -1,12 +1,12 @@
<Project>
<ItemGroup Condition="'$(TargetFrameworkVersion)' == 'v10.0'">
<PackageReference Include="Xamarin.AndroidX.Migration">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.0.0" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Migration">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.0.0" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0" />
</ItemGroup>
</Project>
</Project>

Просмотреть файл

@ -1,3 +1,6 @@
<Project>
<Import Project="Android10.Build.targets" Condition="'$(TargetFrameworkVersion)' == 'v10.0'" />
</Project>
<Import Condition="'$(Use2017)' == 'true'" Project="Nuget2017.Build.targets" />
<Import Condition="'$(Use2017)' != 'true'" Project="Nuget2019.Build.targets" />
<Import Project="..\Nuget.targets" Condition="'$(FromSource)' == 'false'" />
</Project>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<ItemGroup>
<PackageReference Include="Xamarin.Build.Download">
<Version>0.4.11</Version>
</PackageReference>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,17 @@
<Project>
<ItemGroup>
<PackageReference Include="Xamarin.Build.Download">
<Version>0.7.1</Version>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkVersion)' == 'v10.0'">
<PackageReference Include="Xamarin.AndroidX.Migration">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.0.0" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0" />
</ItemGroup>
</Project>

Просмотреть файл

@ -3,11 +3,13 @@ using System.Collections.Generic;
using Xamarin.Forms;
using Xamarin.Forms.ControlGallery.Android;
using Xamarin.Forms.Controls;
using Xamarin.Forms.Internals;
[assembly: Dependency(typeof(PlatformSpecificCoreGalleryFactory))]
namespace Xamarin.Forms.ControlGallery.Android
{
[Preserve(AllMembers = true)]
public class PlatformSpecificCoreGalleryFactory : IPlatformSpecificCoreGalleryFactory
{
public string Title => "Android Core Gallery";

Просмотреть файл

@ -28,7 +28,6 @@
<AndroidEnableMultiDex>true</AndroidEnableMultiDex>
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
</PropertyGroup>
<PropertyGroup>
<!-- default locally to using fast renderers but if we're running on CI don't set a value for ANDROID_RENDERERS.
This will let the old and new yaml configurations coexist -->
@ -37,7 +36,6 @@
<DefineConstants Condition="'$(ANDROID_RENDERERS)' == 'PREAPPCOMPAT'">$(DefineConstants);FORMS_APPLICATION_ACTIVITY</DefineConstants>
<DefineConstants Condition="'$(ANDROID_RENDERERS)' == 'LEGACY'">$(DefineConstants)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DefineConstants>$(DefineConstants);HAVE_OPENTK</DefineConstants>
<AndroidKeyStore>True</AndroidKeyStore>
@ -194,11 +192,7 @@
<AndroidResource Include="Resources\drawable\Icon.png" />
<AndroidResource Include="Resources\drawable\cover1.jpg" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Stubs\Xamarin.Forms.Platform.Android\Xamarin.Forms.Platform.Android (Forwarders).csproj">
<Project>{6e53feb1-1100-46ae-8013-17bba35cc197}</Project>
<Name>Xamarin.Forms.Platform.Android (Forwarders)</Name>
</ProjectReference>
<ItemGroup>
<ProjectReference Include="..\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj">
<Project>{cb9c96ce-125c-4a68-b6a1-c3ff1fbf93e1}</Project>
<Name>Xamarin.Forms.Controls</Name>
@ -207,6 +201,15 @@
<Project>{4dcd0420-1168-4b77-86db-6196ee4bd491}</Project>
<Name>Xamarin.Forms.CustomAttributes</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup Condition="$(FromSource) == 'true'">
<ProguardConfiguration Include="..\.nuspec\proguard.cfg">
<Link>proguard.cfg</Link>
</ProguardConfiguration>
<ProjectReference Include="..\Stubs\Xamarin.Forms.Platform.Android\Xamarin.Forms.Platform.Android (Forwarders).csproj">
<Project>{6e53feb1-1100-46ae-8013-17bba35cc197}</Project>
<Name>Xamarin.Forms.Platform.Android (Forwarders)</Name>
</ProjectReference>
<ProjectReference Include="..\Xamarin.Forms.DualScreen\Xamarin.Forms.DualScreen.csproj">
<Project>{fb4a866a-5721-4545-9e5d-b7f7d59875a4}</Project>
<Name>Xamarin.Forms.DualScreen</Name>
@ -358,9 +361,6 @@
<PackageReference Include="Xam.Plugin.DeviceInfo">
<Version>3.0.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.Build.Download">
<Version>0.7.1</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Android.Support.Animated.Vector.Drawable" Version="28.0.0.3" />
@ -394,11 +394,6 @@
<AndroidResource Include="Resources\drawable\GifOne.gif" />
<AndroidEnvironment Include="Environment.txt" />
</ItemGroup>
<ItemGroup>
<ProguardConfiguration Include="..\.nuspec\proguard.cfg">
<Link>proguard.cfg</Link>
</ProguardConfiguration>
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable\GifTwo.gif" />
</ItemGroup>
@ -424,11 +419,11 @@
</AndroidResource>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="$(FromSource) == 'true' AND Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="BeforeBuild">
<CreateItem Include="Properties\MapsKey.cs.blank">
<Output TaskParameter="Include" ItemName="MapsKey" />
</CreateItem>
<Copy SourceFiles="@(MapsKey)" DestinationFiles="Properties\MapsKey.cs" Condition="!Exists('Properties\MapsKey.cs')" />
</Target>
</Project>
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="..\Nuget.targets" Condition="$(FromSource) == 'false'" />
</Project>

Просмотреть файл

@ -101,6 +101,14 @@
<Project>{cb9c96ce-125c-4a68-b6a1-c3ff1fbf93e1}</Project>
<Name>Xamarin.Forms.Controls</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup Condition="$(FromSource) == 'false'">
<ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj">
<Project>{4dcd0420-1168-4b77-86db-6196ee4bd491}</Project>
<Name>Xamarin.Forms.CustomAttributes</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup Condition="$(FromSource) == 'true'">
<ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj">
<Project>{57b8b73d-c3b5-4c42-869e-7b2f17d354ac}</Project>
<Name>Xamarin.Forms.Core</Name>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="..\Nuget.targets" Condition="$(FromSource) == 'false'" />
</Project>

Просмотреть файл

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Condition="'$(EnvironmentBuildPropsImported)' != 'True'" Project="..\Environment.Build.props" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' And '$(BuildIpa)' == 'True' ">iPhone</Platform>
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
<ProjectGuid>{C7131F14-274F-4B55-ACA9-E81731AD012F}</ProjectGuid>
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@ -159,6 +161,14 @@
<Project>{cb9c96ce-125c-4a68-b6a1-c3ff1fbf93e1}</Project>
<Name>Xamarin.Forms.Controls</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup Condition="$(FromSource) == 'false'">
<ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj">
<Project>{4dcd0420-1168-4b77-86db-6196ee4bd491}</Project>
<Name>Xamarin.Forms.CustomAttributes</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup Condition="$(FromSource) == 'true'">
<ProjectReference Include="..\Xamarin.Forms.DualScreen\Xamarin.Forms.DualScreen.csproj">
<Project>{fb4a866a-5721-4545-9e5d-b7f7d59875a4}</Project>
<Name>Xamarin.Forms.DualScreen</Name>
@ -439,4 +449,4 @@
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
</Project>
</Project>

Просмотреть файл

@ -1,4 +1,4 @@
<Project>
<Import Project="..\.nuspec\Xamarin.Forms.props" />
<Import Project="..\Directory.Build.props" />
<Import Project="..\.nuspec\Xamarin.Forms.props" Condition="$(FromSource) == 'true'" />
</Project>

Просмотреть файл

@ -1,4 +1,5 @@
<Project>
<Import Project="..\.nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' == 'true' AND Exists('$(__XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll')" />
<Import Project="..\.nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' != 'true'" />
<Import Project="..\.nuspec\Xamarin.Forms.targets" Condition="$(FromSource) == 'true' AND '$(BuildingInsideVisualStudio)' == 'true' AND Exists('$(__XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll')" />
<Import Project="..\.nuspec\Xamarin.Forms.targets" Condition="$(FromSource) == 'true' AND '$(BuildingInsideVisualStudio)' != 'true'" />
<Import Project="..\Nuget.targets" Condition="'$(FromSource)' == 'false'" />
</Project>

Просмотреть файл

@ -0,0 +1,11 @@
<Project>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="$(XamarinFormsVersion)">
</PackageReference>
<PackageReference Include="Xamarin.Forms.Maps" Version="$(XamarinFormsVersion)">
</PackageReference>
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="$(XamarinFormsVersion)">
</PackageReference>
<ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,11 @@
<Project>
<Import Project="..\.nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' == 'true' AND Exists('$(__XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll')" />
<Import Project="..\.nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' != 'true'" />
<ItemGroup>
<!-- A reference to the entire .NET Framework is automatically included -->
<ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj" />
<ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj" />
<ProjectReference Include="..\Xamarin.Forms.Maps\Xamarin.Forms.Maps.csproj" />
<ProjectReference Include="..\Xamarin.Forms.Xaml\Xamarin.Forms.Xaml.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -27,7 +27,7 @@
<None Remove="Fonts\fa-regular-400.ttf" />
<None Remove="Fonts\PTM55FT.ttf" />
</ItemGroup>
<ItemGroup>
<ItemGroup Condition="$(FromSource) == 'true'">
<!-- A reference to the entire .NET Framework is automatically included -->
<ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj" />
<ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj" />
@ -35,6 +35,9 @@
<ProjectReference Include="..\Xamarin.Forms.Maps\Xamarin.Forms.Maps.csproj" />
<ProjectReference Include="..\Xamarin.Forms.Xaml\Xamarin.Forms.Xaml.csproj" />
</ItemGroup>
<ItemGroup Condition="$(FromSource) == 'false'">
<ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="BuildNumber.txt" />
<EmbeddedResource Include="GalleryPages\crimson.jpg" />
@ -91,4 +94,4 @@
<Import Project="..\Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems" Label="Shared" />
</Project>
</Project>

Просмотреть файл

@ -14,6 +14,12 @@ namespace Xamarin.Forms.DualScreen
{
public class DualScreenService
{
[Internals.Preserve(Conditional = true)]
public DualScreenService()
{
}
public static void Init(Activity activity)
{
DependencyService.Register<DualScreenServiceImpl>();
@ -34,6 +40,7 @@ namespace Xamarin.Forms.DualScreen
object _hingeAngleLock = new object();
TaskCompletionSource<int> _gettingHingeAngle;
[Internals.Preserve(Conditional = true)]
public DualScreenServiceImpl()
{
_HingeService = this;

Просмотреть файл

@ -37,4 +37,4 @@
<ItemGroup>
<PackageReference Condition="'$(CI)' == 'true'" Include="Xamarin.Build.TypeRedirector" Version="0.1.2-preview" PrivateAssets="all" />
</ItemGroup>
</Project>
</Project>

Просмотреть файл

@ -2,7 +2,7 @@
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}</ProjectGuid>
@ -71,4 +71,4 @@
<ItemGroup>
<PackageReference Condition="'$(CI)' == 'true'" Include="Xamarin.Build.TypeRedirector" Version="0.1.2-preview" PrivateAssets="all" />
</ItemGroup>
</Project>
</Project>

Просмотреть файл

@ -100,4 +100,4 @@
<ItemGroup>
<PackageReference Condition="'$(CI)' == 'true'" Include="Xamarin.Build.TypeRedirector" Version="0.1.2-preview" PrivateAssets="all" />
</ItemGroup>
</Project>
</Project>

Просмотреть файл

@ -3,8 +3,7 @@
<TargetFrameworks>netstandard2.0;netstandard1.4</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Mobile.Client">
<Version>4.1.1</Version>
<PackageReference Include="Microsoft.Azure.Mobile.Client" Version="4.1.1">
</PackageReference>
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -7,8 +7,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json">
<Version>11.0.2</Version>
<PackageReference Include="Newtonsoft.Json" Version="11.0.2">
</PackageReference>
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -62,4 +62,4 @@ namespace Xamarin.Forms.Platform.iOS
Control.StartAnimating();
}
}
}
}

Просмотреть файл

@ -26,7 +26,7 @@ variables:
resources:
repositories:
- repository: xamarin-templates
- repository: xamarin-templates
type: github
name: xamarin/yaml-templates
endpoint: xamarin
@ -59,96 +59,90 @@ schedules:
include:
- master
jobs:
- template: build/steps/build-windows.yml
parameters:
name: win
displayName: Build Windows Phase
vmImage: $(win2019VmImage)
provisionatorPath : 'build/provisioning/provisioning.csx'
stages:
- stage: windows
displayName: Build Windows
jobs:
- template: build/steps/build-windows.yml
parameters:
name: win
displayName: Build Windows Phase
vmImage: $(win2019VmImage)
provisionatorPath : 'build/provisioning/provisioning.csx'
- job: nuget_pack
workspace:
clean: all
dependsOn:
- win
displayName: Nuget Phase
condition: succeeded()
pool:
name: $(win2019VmImage)
variables:
FormsIdAppend: ''
buildConfiguration: $(DefaultBuildConfiguration)
nugetPackageVersion : $[ dependencies.win.outputs['debug.winbuild.xamarinformspackageversion'] ]
steps:
- template: build/steps/build-nuget.yml
- template: build/steps/build-android.yml
parameters:
name: android_legacy
displayName: Build Android [Legacy Renderers]
vmImage: $(macOSVmImage)
targetFolder: Xamarin.Forms.ControlGallery.Android/legacyRenderers/
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:ANDROID_RENDERERS="LEGACY" /bl:$(Build.ArtifactStagingDirectory)/android-legacy.binlog'
buildConfiguration: $(AndroidBuildConfiguration)
provisionatorPath : 'build/provisioning/provisioning.csx'
- stage: android
displayName: Build Android
${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
dependsOn: windows
${{ if eq(variables['System.TeamProject'], 'public') }}:
dependsOn: []
jobs:
- template: build/steps/build-android.yml
parameters:
vmImage: $(macOSVmImage)
provisionatorPath : 'build/provisioning/provisioning.csx'
- template: build/steps/build-android.yml
parameters:
name: android_preappcompact
displayName: Build Android [Pre-AppCompat]
vmImage: $(macOSVmImage)
targetFolder: Xamarin.Forms.ControlGallery.Android/preAppCompat
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:ANDROID_RENDERERS="PREAPPCOMPAT" /bl:$(Build.ArtifactStagingDirectory)/android-preappcompact.binlog'
buildConfiguration: $(AndroidBuildConfiguration)
provisionatorPath : 'build/provisioning/provisioning.csx'
- template: build/steps/build-android.yml
parameters:
name: android_fast
displayName: Build Android [Fast Renderers]
vmImage: $(macOSVmImage)
targetFolder: Xamarin.Forms.ControlGallery.Android/newRenderers/
androidProjectArguments: '/t:"Rebuild;SignAndroidPackage" /p:ANDROID_RENDERERS="FAST" /bl:$(Build.ArtifactStagingDirectory)/android-newrenderers.binlog'
buildConfiguration: $(AndroidBuildConfiguration)
provisionatorPath : 'build/provisioning/provisioning.csx'
- job: osx
workspace:
clean: all
displayName: OSX Phase
pool:
name: $(macOSVmImage)
demands:
- Agent.OS -equals darwin
- sh
- msbuild
- Xamarin.iOS
strategy:
matrix:
BuildForVS2017:
buildForVS2017: 'true'
BuildForVS2019:
buildForVS2017: 'false'
variables:
provisionator.osxPath : 'build/provisioning/provisioning.csx'
provisionator.signPath : 'build/provisioning/provisioning_sign.csx'
buildConfiguration: $(DefaultBuildConfiguration)
slnPath: $(SolutionFile)
iOSCertSecureFileName: 'Xamarin Forms iOS Certificate.p12'
iOSProvisioningSecureFileName: 'Xamarin Forms iOS Provisioning.mobileprovision'
buildForVS2017: $(buildForVS2017)
steps:
- template: build/steps/build-osx.yml
- job: nuget_pack
workspace:
clean: all
displayName: Nuget Phase
dependsOn:
- win
condition: succeeded()
pool:
name: $(winVmImage)
variables:
FormsIdAppend: ''
buildConfiguration: $(DefaultBuildConfiguration)
nugetPackageVersion : $[ dependencies.win.outputs['debug.winbuild.xamarinformspackageversion'] ]
steps:
- template: build/steps/build-nuget.yml
- stage: build_osx
displayName: Build OSX
${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
dependsOn: windows
${{ if eq(variables['System.TeamProject'], 'public') }}:
dependsOn: []
jobs:
- job: osx
workspace:
clean: all
displayName: OSX Phase
pool:
name: $(macOSVmImage)
demands:
- Agent.OS -equals darwin
- sh
- msbuild
- Xamarin.iOS
strategy:
matrix:
BuildForVS2017:
buildForVS2017: 'true'
BuildForVS2019:
buildForVS2017: 'false'
variables:
provisionator.osxPath : 'build/provisioning/provisioning.csx'
provisionator.signPath : 'build/provisioning/provisioning_sign.csx'
buildConfiguration: $(DefaultBuildConfiguration)
iOSCertSecureFileName: 'Xamarin Forms iOS Certificate.p12'
iOSProvisioningSecureFileName: 'Xamarin Forms iOS Provisioning.mobileprovision'
buildForVS2017: $(buildForVS2017)
steps:
- template: build/steps/build-osx.yml
# only sign using the private server
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
- job: nuget_sign
displayName: Sign Phase
dependsOn: nuget_pack
pool:
name: $(signVmImage)
steps:
- template: build/steps/build-sign.yml
condition: and(succeeded(), or(eq(variables['Sign'], 'true'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'],'refs/tags/'))))
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
- stage: nuget_signing
dependsOn: windows
displayName: Sign Nuget
jobs:
- job: nuget_sign
displayName: Sign Phase
pool:
name: $(signVmImage)
steps:
- template: build/steps/build-sign.yml
condition: and(succeeded(), or(eq(variables['Sign'], 'true'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'],'refs/tags/'))))

Просмотреть файл

@ -68,7 +68,7 @@ string monoPatchVersion = "";
string monoMajorVersion = "";
string monoVersion = "";
if(buildForVS2017)
if(buildForVS2017 || teamProject == "DevDiv")
{
// VS2017
monoMajorVersion = "5.18.1";

Просмотреть файл

@ -3,19 +3,15 @@ parameters:
displayName: '' # the human name
vmImage: '' # the VM image
vmPool: '' # the VM pool
targetFolder: '' # the bootstrapper target
dependsOn: [] # the dependiencies
preBuildSteps: [] # any steps to run before the build
postBuildSteps: [] # any additional steps to run after the build
slnPath : 'Xamarin.Forms.sln'
buildTaskPath : 'Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj'
androidPath : 'Xamarin.Forms.ControlGallery.Android'
androidProjectPath : 'Xamarin.Forms.ControlGallery.Android/Xamarin.Forms.ControlGallery.Android.csproj'
androidProjectArguments : ''
buildConfiguration : 'Debug'
nugetVersion: $(NUGET_VERSION)
monoVersion: $(MONO_VERSION)
apkTargetFolder: '$(build.artifactstagingdirectory)/androidApp'
provisionatorPath: 'build/provisioning/provisioning.csx'
provisionatorExtraArguments: ''
@ -28,6 +24,17 @@ jobs:
pool:
name: ${{ parameters.vmImage }}
dependsOn: ${{ parameters.dependsOn }}
strategy:
matrix:
android_legacy:
renderers: 'LEGACY'
outputfolder: 'legacyRenderers'
android_preAppCompat:
renderers: 'PREAPPCOMPAT'
outputfolder: 'preAppCompat'
android_newRenderers:
renderers: 'FAST'
outputfolder: 'newRenderers'
steps:
- checkout: self
clean: true
@ -45,7 +52,7 @@ jobs:
inputs:
targetType: 'filePath'
filePath: 'build.sh'
arguments: --target provision
arguments: --target provision --TeamProject="$(System.TeamProject)"
- task: UseDotNet@2
displayName: 'Install .net core $(DOTNET_VERSION)'
@ -62,11 +69,27 @@ jobs:
condition: ne(variables['NUGET_VERSION'], '')
inputs:
versionSpec: $(NUGET_VERSION)
- task: DownloadBuildArtifacts@0
displayName: 'Download build artifact nuget'
condition: eq(variables['System.TeamProject'], 'DevDiv')
inputs:
artifactName: 'nuget'
downloadPath: 'Nuget'
- task: CopyFiles@2
displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)'
condition: eq(variables['System.TeamProject'], 'DevDiv')
inputs:
SourceFolder: 'Nuget/nuget/${{ parameters.buildConfiguration }}'
TargetFolder: 'Nuget'
- task: NuGetCommand@2
displayName: 'NuGet restore ${{ parameters.slnPath }}'
inputs:
restoreSolution: ${{ parameters.slnPath }}
feedsToUse: config
nugetConfigPath: 'DevopsNuget.config'
- task: MSBuild@1
displayName: 'Build ${{ parameters.buildTaskPath }}'
@ -75,27 +98,27 @@ jobs:
configuration: ${{ parameters.buildConfiguration }}
- task: MSBuild@1
displayName: 'Build Android ${{ parameters.name }}'
displayName: 'Build Android $(renderers)'
inputs:
solution: ${{ parameters.androidProjectPath }}
configuration: ${{ parameters.buildConfiguration }}
msbuildArguments: ${{ parameters.androidProjectArguments }}
msbuildArguments: '/t:"Rebuild;SignAndroidPackage" /p:ANDROID_RENDERERS="$(renderers)" /bl:$(Build.ArtifactStagingDirectory)/android-$(renderers).binlog'
- task: CopyFiles@2
displayName: 'Copy ${{ parameters.name }}'
displayName: 'Copy $(renderers)'
inputs:
SourceFolder: ${{ parameters.androidPath }}/bin/${{ parameters.buildConfiguration }}/
SourceFolder: Xamarin.Forms.ControlGallery.Android/bin/${{ parameters.buildConfiguration }}/
Contents: '**/*.apk'
TargetFolder: ${{ parameters.targetFolder }}
TargetFolder: 'Xamarin.Forms.ControlGallery.Android/$(outputfolder)/'
CleanTargetFolder: true
OverWrite: true
- task: CopyFiles@2
displayName: 'Copy Android apk ${{ parameters.name }} for UITest'
displayName: 'Copy Android apk $(renderers) for UITest'
inputs:
Contents: |
${{ parameters.targetFolder }}/$(ApkName)
TargetFolder: ${{ parameters.apkTargetFolder }}
Xamarin.Forms.ControlGallery.Android/$(outputfolder)/$(ApkName)
TargetFolder: '$(build.artifactstagingdirectory)/androidApp'
CleanTargetFolder: true
- task: PublishBuildArtifacts@1

Просмотреть файл

@ -15,7 +15,7 @@ steps:
inputs:
targetType: 'filePath'
filePath: 'build.sh'
arguments: --target provision --buildForVS2017=$(buildForVS2017)
arguments: --target provision --TeamProject="$(System.TeamProject)" --buildForVS2017=$(buildForVS2017)
- task: UseDotNet@2
displayName: 'Install .net core $(DOTNET_VERSION)'
@ -29,16 +29,34 @@ steps:
condition: ne(variables['NUGET_VERSION'], '')
inputs:
versionSpec: $(NUGET_VERSION)
- task: DownloadBuildArtifacts@0
displayName: 'Download build artifact nuget'
condition: eq(variables['System.TeamProject'], 'DevDiv')
inputs:
artifactName: 'nuget'
downloadPath: '$(Build.ArtifactsDirectory)'
- task: CopyFiles@2
displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)'
condition: eq(variables['System.TeamProject'], 'DevDiv')
inputs:
SourceFolder: '$(Build.ArtifactsDirectory)/nuget/$(buildConfiguration)'
TargetFolder: '$(System.DefaultWorkingDirectory)/Nuget'
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: $(slnPath)
command: restore
restoreSolution: 'Xamarin.Forms.sln'
feedsToUse: config
nugetConfigPath: 'DevopsNuget.config'
- task: MSBuild@1
displayName: 'Build solution Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj'
inputs:
solution: Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj
msbuildArguments: /bl:$(Build.ArtifactStagingDirectory)/tasks.binlog
- task: InstallAppleCertificate@2
displayName: 'Install an Apple certificate'
@ -51,13 +69,26 @@ steps:
inputs:
provProfileSecureFile: 'Xamarin Forms iOS Provisioning.mobileprovision'
- task: XamariniOS@2
displayName: 'Build Xamarin.iOS solution $(slnPath)'
- task: MSBuild@1
displayName: 'Build Control Gallery IPA'
inputs:
solutionFile: $(slnPath)
solution: 'Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj'
configuration: $(buildConfiguration)
args: /bl:$(Build.ArtifactStagingDirectory)/ios-2017_$(buildForVS2017).binlog
msbuildArguments: /bl:$(Build.ArtifactStagingDirectory)/ios-cg.binlog /p:BuildIpa=true
- task: MSBuild@1
displayName: 'Build iOS Tests'
inputs:
solution: 'Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj'
configuration: $(buildConfiguration)
msbuildArguments: /bl:$(Build.ArtifactStagingDirectory)/ios-uitests.binlog
- task: MSBuild@1
displayName: 'Build Android Tests'
inputs:
solution: 'Xamarin.Forms.Core.Android.UITests/Xamarin.Forms.Core.Android.UITests.csproj'
configuration: $(buildConfiguration)
msbuildArguments: /bl:$(Build.ArtifactStagingDirectory)/android-uitests.binlog
- task: CopyFiles@2
displayName: 'Copy test-cloud.exe'
@ -108,4 +139,4 @@ steps:
condition: always()
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: OSXArtifacts
ArtifactName: OSXArtifacts

Просмотреть файл

@ -64,6 +64,8 @@ jobs:
displayName: 'NuGet restore ${{ parameters.slnPath }}'
inputs:
restoreSolution: ${{ parameters.slnPath }}
feedsToUse: config
nugetConfigPath: 'DevopsNuget.config'
- script: build.cmd -Target BuildForNuget -ScriptArgs '-configuration="$(BuildConfiguration)"','-Build_ArtifactStagingDirectory="$(Build.ArtifactStagingDirectory)"'
name: winbuild