Просмотр исходного кода

Add aspnet/Templating to the universe build

Nate McMaster 8 лет назад
Родитель
Сommit
446de15f0b

+ 4 - 0
.gitmodules

@@ -166,3 +166,7 @@
 	path = modules/Testing
 	url = https://github.com/aspnet/Testing.git
 	branch = patch/2.0.1
+[submodule "modules/Templating"]
+	path = modules/Templating
+	url = https://github.com/aspnet/Templating.git
+	branch = rel/2.0.3

+ 7 - 12
build/RuntimeStore.targets

@@ -1,12 +1,6 @@
 <Project>
   <Import Project="common.props" />
 
-  <PropertyGroup Condition=" '$(Version)' == '' ">
-    <VersionPrefix Condition=" '$(VersionPrefix)' == '' ">1.0.0</VersionPrefix>
-    <Version Condition=" '$(VersionSuffix)' != '' ">$(VersionPrefix)-$(VersionSuffix)</Version>
-    <Version Condition=" '$(Version)' == '' ">$(VersionPrefix)</Version>
-  </PropertyGroup>
-
   <PropertyGroup>
     <_DependencyBuildDirectory>$(RepositoryRoot).deps\build\</_DependencyBuildDirectory>
     <_DependencyMirrorDirectory>$(RepositoryRoot).deps\mirror\</_DependencyMirrorDirectory>
@@ -37,6 +31,7 @@
     </ItemGroup>
 
     <Copy SourceFiles="@(AllMetapackageFiles)" DestinationFolder="$(MetapackageWorkDirectory)\%(RecursiveDir)" />
+    <Copy SourceFiles="$(_SrcDirectory)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
 
     <!-- Generate RS.Reference project -->
     <RepoTasks.AddMetapackageReferences
@@ -81,7 +76,7 @@
       OutputPath="$(GeneratedRestoreSourcesPropsPath)" />
 
     <PropertyGroup>
-      <_RsManifestProps>MicrosoftAspNetCoreAllPackageVersion=$(Version)</_RsManifestProps>
+      <_RsManifestProps>MicrosoftAspNetCoreAllPackageVersion=$(PackageVersion)</_RsManifestProps>
       <_RsManifestProps>$(_RsManifestProps);DotNetRestoreSourcesPropsPath=$(GeneratedRestoreSourcesPropsPath)</_RsManifestProps>
     </PropertyGroup>
   </Target>
@@ -144,8 +139,8 @@
 
   <Target Name="PackRuntimeStore" DependsOnTargets="_ResolveRuntimeStoreRID">
     <PropertyGroup>
-      <OutputZip>$(ArtifactsDir)aspnetcore-store-$(Version)-$(RuntimeStoreRID).zip</OutputZip>
-      <OutputSymbolZip>$(ArtifactsDir)aspnetcore-symbols-$(Version)-$(RuntimeStoreRID).zip</OutputSymbolZip>
+      <OutputZip>$(ArtifactsDir)aspnetcore-store-$(PackageVersion)-$(RuntimeStoreRID).zip</OutputZip>
+      <OutputSymbolZip>$(ArtifactsDir)aspnetcore-symbols-$(PackageVersion)-$(RuntimeStoreRID).zip</OutputSymbolZip>
     </PropertyGroup>
 
     <ItemGroup>
@@ -162,7 +157,7 @@
       NewManifests="@(RuntimeStoreManifestFiles)"
       RuntimeStoreFiles="@(RuntimeStoreFiles)"
       RuntimeStoreSymbolFiles="@(RuntimeStoreSymbolFiles)"
-      ManifestDestination="$(ArtifactsDir)aspnetcore-store-$(Version)-$(RuntimeStoreRID).xml"
+      ManifestDestination="$(ArtifactsDir)aspnetcore-store-$(PackageVersion)-$(RuntimeStoreRID).xml"
       StoreDestination="$(_StoreZipDirectory)store\"
       SymbolsDestination="$(_SymbolsZipDirectory)"/>
 
@@ -181,7 +176,7 @@
 
   <Target Name="CreateCommonManifest" DependsOnTargets="_PrepareRuntimeStoreBuildAssets">
     <PropertyGroup>
-      <CommonManifestFileName>aspnetcore-store-$(Version)-common.xml</CommonManifestFileName>
+      <CommonManifestFileName>aspnetcore-store-$(PackageVersion)-common.xml</CommonManifestFileName>
     </PropertyGroup>
 
     <!-- Trim packages guaranteed to be in the runtime but isn't included in our runtime store -->
@@ -210,7 +205,7 @@
     <!-- Create a consolidated manifest and place in metapackage -->
     <RepoTasks.ConsolidateManifests
       Manifests="@(ManifestFiles)"
-      ManifestDestination="$(_WorkRoot)\build\aspnetcore-store-$(Version).xml"/>
+      ManifestDestination="$(_WorkRoot)\build\aspnetcore-store-$(PackageVersion).xml"/>
 
     <ItemGroup>
       <ArchiveFiles Include="$(_WorkRoot)**\*" />

+ 69 - 0
build/Templating.targets

@@ -0,0 +1,69 @@
+<Project>
+  <PropertyGroup>
+    <TemplatingProjectRoot>$(MSBuildThisFileDirectory)..\modules\Templating\</TemplatingProjectRoot>
+  </PropertyGroup>
+
+  <Target Name="BuildTemplates" DependsOnTargets="GeneratePropsFiles">
+    <PropertyGroup>
+      <GeneratedNoTimestampPackageVersionPropsPath>$(IntermediateDir)dependencies.notimestamp.props</GeneratedNoTimestampPackageVersionPropsPath>
+      <TemplateProjCommmonProperties>
+        RepositoryRoot=$(TemplatingProjectRoot);
+        DotNetRestoreSourcesPropsPath=$(GeneratedRestoreSourcesPropsPath);
+        BuildNumber=$(BuildNumber);
+        Configuration=$(Configuration);
+      </TemplateProjCommmonProperties>
+      <TemplateProjProperties>
+        $(TemplateProjCommmonProperties);
+        DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
+        VersionMetadata=timestamped;
+      </TemplateProjProperties>
+      <TemplateProjNoTimestampProperties>
+        $(TemplateProjCommmonProperties);
+        DotNetPackageVersionPropsPath=$(GeneratedNoTimestampPackageVersionPropsPath);
+        BuildNumber=$(BuildNumber)-final;
+        VersionMetadata=notimestamp;
+      </TemplateProjNoTimestampProperties>
+    </PropertyGroup>
+
+    <!-- Produce regular, timestamped templates for pre-release builds -->
+    <MSBuild Projects="$(MSBuildProjectFullPath)"
+             Targets="Restore;Compile;Package"
+             Properties="$(TemplateProjProperties)" />
+
+    <ItemGroup>
+      <TemplateArtifacts Include="$(TemplatingProjectRoot)artifacts\build\*" />
+    </ItemGroup>
+
+    <Copy SourceFiles="@(TemplateArtifacts)" DestinationFolder="$(BuildDir)" />
+
+    <!-- Gather artifact info as if this were a final build -->
+    <MSBuild Projects="$(MSBuildProjectFullPath)"
+             Targets="GetArtifactInfo"
+             Properties="RepositoryRoot=%(Repository.RootPath);Configuration=$(Configuration);BuildNumber=$(BuildNumber);IsFinalBuild=true"
+             ContinueOnError="WarnAndContinue">
+      <Output TaskParameter="TargetOutputs" ItemName="FinalBuildArtifactInfo" />
+    </MSBuild>
+
+    <ItemGroup>
+      <_NoTimestampPackages Include="@(ExternalDependency)" />
+      <_NoTimestampPackages Include="%(FinalBuildArtifactInfo.PackageId)" Version="%(FinalBuildArtifactInfo.Version)" Condition=" '%(FinalBuildArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
+      <_NoTimestampPackages Include="Microsoft.AspNetCore.All" Version="$(PackageVersionNoTimestamp)" />
+    </ItemGroup>
+
+    <RepoTasks.GeneratePackageVersionPropsFile
+      Packages="@(_NoTimestampPackages)"
+      OutputPath="$(GeneratedNoTimestampPackageVersionPropsPath)" />
+
+    <!-- Rebuild the templates without restoring. (The non-timestamped packages don't exist yet.) -->
+    <MSBuild Projects="$(MSBuildProjectFullPath)"
+             Targets="Prepare;Compile;Package"
+             Properties="$(TemplateProjNoTimestampProperties);NoRestore=true" />
+
+    <ItemGroup>
+      <TemplateNoTimestampArtifacts Include="$(TemplatingProjectRoot)artifacts\build\*" />
+    </ItemGroup>
+
+    <Copy SourceFiles="@(TemplateNoTimestampArtifacts)" DestinationFolder="$(ArtifactsDir)notimestamp\" />
+  </Target>
+
+</Project>

+ 5 - 0
build/artifacts.props

@@ -113,6 +113,7 @@
     <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel" Category="ship" Metapackage="true" />
     <PackageArtifact Include="Microsoft.AspNetCore.Session" Category="ship" Metapackage="true" />
     <PackageArtifact Include="Microsoft.AspNetCore.SpaServices" Category="ship" Metapackage="true" />
+    <PackageArtifact Include="Microsoft.AspNetCore.SpaTemplates" Category="ship" />
     <PackageArtifact Include="Microsoft.AspNetCore.StaticFiles" Category="ship" Metapackage="true" />
     <PackageArtifact Include="Microsoft.AspNetCore.TestHost" Category="ship" />
     <PackageArtifact Include="Microsoft.AspNetCore.WebSockets" Category="ship" Metapackage="true" />
@@ -121,6 +122,10 @@
     <PackageArtifact Include="Microsoft.CodeAnalysis.Razor.Workspaces" Category="shipoob" />
     <PackageArtifact Include="Microsoft.CodeAnalysis.Razor" Category="ship" Metapackage="true" />
     <PackageArtifact Include="Microsoft.CodeAnalysis.Remote.Razor" Category="shipoob" />
+    <PackageArtifact Include="Microsoft.DotNet.Web.Client.ItemTemplates" Category="shipoob" />
+    <PackageArtifact Include="Microsoft.DotNet.Web.ItemTemplates" Category="shipoob" />
+    <PackageArtifact Include="Microsoft.DotNet.Web.ProjectTemplates.2.0" Category="shipoob" />
+    <PackageArtifact Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Category="shipoob" />
     <PackageArtifact Include="Microsoft.EntityFrameworkCore.Design" Category="ship" Metapackage="true" />
     <PackageArtifact Include="Microsoft.EntityFrameworkCore.InMemory" Category="ship" Metapackage="true" />
     <PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational.Design.Specification.Tests" Category="ship" />

+ 0 - 1
build/common.props

@@ -1,5 +1,4 @@
 <Project>
-  <Import Project="..\version.props" />
   <Import Project="dependencies.props" />
 
   <PropertyGroup>

+ 2 - 2
build/dependencies.props

@@ -123,7 +123,7 @@
   <!-- ASP.NET Core Tools feed -->
   <PropertyGroup>
     <AspNetCoreToolsFeed>https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json</AspNetCoreToolsFeed>
-    <InternalAspNetCoreSdkPackageVersion>2.0.2-beta-15522</InternalAspNetCoreSdkPackageVersion>
+    <InternalAspNetCoreSdkPackageVersion>2.0.2-rc1-15526</InternalAspNetCoreSdkPackageVersion>
   </PropertyGroup>
 
   <ItemGroup>
@@ -270,7 +270,7 @@
       <NoWarn>KRB2004</NoWarn>
     </ExternalDependency>
     <ExternalDependency Include="xunit.extensibility.core" Version="2.2.0" Source="$(DefaultNuGetFeed)" />
-    <ExternalDependency Include="xunit.runner.visualstudio" Version="2.3.0-beta2-build1317" Source="$(DefaultNuGetFeed)" Private="true">
+    <ExternalDependency Include="xunit.runner.visualstudio" Version="2.3.0" Source="$(DefaultNuGetFeed)" Private="true">
       <VariableName>XunitRunnerVisualStudioPackageVersion</VariableName>
     </ExternalDependency>
     <ExternalDependency Include="xunit" Version="2.2.0" Source="$(DefaultNuGetFeed)">

+ 3 - 1
build/repo.targets

@@ -2,6 +2,7 @@
   <Import Project="RepositoryBuild.targets" />
   <Import Project="RuntimeStore.targets" />
   <Import Project="PackageArchive.targets" />
+  <Import Project="Templating.targets" />
   <Import Project="push.targets" />
 
   <PropertyGroup>
@@ -22,7 +23,7 @@
     <CleanDependsOn>$(CleanDependsOn);CleanArtifacts;CleanUniverseArtifacts</CleanDependsOn>
     <RestoreDependsOn>$(RestoreDependsOn);RestoreExternalDependencies</RestoreDependsOn>
     <CompileDependsOn>$(CompileDependsOn);BuildRepositories</CompileDependsOn>
-    <PackageDependsOn>$(PackageDependsOn);BuildAllMetapackage;SplitPackages</PackageDependsOn>
+    <PackageDependsOn>$(PackageDependsOn);BuildAllMetapackage;BuildTemplates;SplitPackages</PackageDependsOn>
     <VerifyDependsOn>$(VerifyDependsOn);VerifyCoherentVersions</VerifyDependsOn>
   </PropertyGroup>
 
@@ -44,6 +45,7 @@
     <ItemGroup>
       <_LineupPackages Include="@(ExternalDependency)" />
       <_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
+      <_LineupPackages Include="Microsoft.AspNetCore.All" Version="$(PackageVersion)" />
 
       <_LineupSources Include="$(_DependencyPackagesDirectory)" Condition="'$(_DependencyPackagesDirectory)' != '' AND Exists('$(_DependencyPackagesDirectory)')" />
       <_LineupSources Include="$(BuildDir)" />

+ 2 - 0
build/tasks/GeneratePackageVersionPropsFile.cs

@@ -32,6 +32,8 @@ namespace RepoTasks
             var root = new XElement("Project", props);
             var doc = new XDocument(root);
 
+            props.Add(new XElement("MSBuildAllProjects", "$(MSBuildAllProjects);$(MSBuildThisFileFullPath)"));
+
             var varNames = new HashSet<string>();
             var versionElements = new List<XElement>();
             foreach (var pkg in Packages)

+ 4 - 1
build/tasks/GenerateRestoreSourcesPropsFile.cs

@@ -26,7 +26,10 @@ namespace RepoTasks
             Directory.CreateDirectory(Path.GetDirectoryName(OutputPath));
 
             var sources = new XElement("DotNetRestoreSources");
-            var doc = new XDocument(new XElement("Project", new XElement("PropertyGroup", sources)));
+            var propertyGroup = new XElement("PropertyGroup", sources);
+            var doc = new XDocument(new XElement("Project", propertyGroup));
+
+            propertyGroup.Add(new XElement("MSBuildAllProjects", "$(MSBuildAllProjects);$(MSBuildThisFileFullPath)"));
 
             var sb = new StringBuilder();
 

+ 2 - 2
korebuild-lock.txt

@@ -1,2 +1,2 @@
-version:2.0.2-beta-15522
-commithash:f26cb086ebd8b5a187381bb9a431794f11d69025
+version:2.0.2-rc1-15526
+commithash:436afc3dc08f5e278431db807866cc5f032f4d7b

+ 1 - 0
modules/Templating

@@ -0,0 +1 @@
+Subproject commit a4ba5a1cb1c61d3a4bead34915baccf438a8d1b3

+ 4 - 0
src/Directory.Build.props

@@ -0,0 +1,4 @@
+<Project>
+  <Import Project="..\version.props" />
+  <Import Project="..\build\common.props" />
+</Project>

+ 1 - 1
src/Microsoft.AspNetCore.All/Microsoft.AspNetCore.All.csproj

@@ -1,6 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <Import Project="..\..\build\common.props" />
   <Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/>
 
   <PropertyGroup>
@@ -15,6 +14,7 @@
     </RestoreSources>
 
     <IncludeBuildOutput>false</IncludeBuildOutput>
+    <IncludeSymbols>false</IncludeSymbols>
     <TargetFramework>netcoreapp2.0</TargetFramework>
     <PackageTags>aspnetcore</PackageTags>
     <Description>Microsoft.AspNetCore.All</Description>

+ 2 - 0
version.props

@@ -3,7 +3,9 @@
     <VersionPrefix>2.0.3</VersionPrefix>
     <VersionSuffix>rtm</VersionSuffix>
     <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
+    <PackageVersionNoTimestamp Condition="'$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersionNoTimestamp>
     <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>
+    <PackageVersionNoTimestamp Condition="'$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersionNoTimestamp>
     <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(BuildNumber)' != ''">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
   </PropertyGroup>
 </Project>