111 lines
5.3 KiB
XML
111 lines
5.3 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<Import Project="common.props" />
|
|
|
|
<PropertyGroup>
|
|
<MetaPackagePath>$(RepositoryRoot)src\Microsoft.AspNetCore.RuntimeStore\</MetaPackagePath>
|
|
<MetaPackageFile>$(MetaPackagePath)Microsoft.AspNetCore.RuntimeStore.csproj</MetaPackageFile>
|
|
<WorkingDirectory>$(MetaPackagePath)bin\work\</WorkingDirectory>
|
|
<PackageCacheOutputPath>$(MetaPackagePath)bin\packageCache\</PackageCacheOutputPath>
|
|
<DepsOutputPath>$(MetaPackagePath)bin\deps\</DepsOutputPath>
|
|
<ArtifactsDir>$(RepositoryRoot)artifacts\</ArtifactsDir>
|
|
<ArtifactsZipDir>$(ArtifactsDir)zip\</ArtifactsZipDir>
|
|
<TempDir>$(ArtifactsDir)temp\</TempDir>
|
|
<ToolsDir>$(RepositoryRoot)tools\</ToolsDir>
|
|
<DependencyBuildDirectory>$(RepositoryRoot).deps\build\</DependencyBuildDirectory>
|
|
<PrepareDependsOn>
|
|
$(PrepareDependsOn);
|
|
UpdateNuGetConfig
|
|
</PrepareDependsOn>
|
|
<CompileDependsOn Condition="'$(BUILD_PACKAGE_CACHE)' == 'true'">
|
|
$(CompileDependsOn);
|
|
BuildPackageCache
|
|
</CompileDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="UpdateNuGetConfig">
|
|
<UpdatePackageSource
|
|
NuGetConfigPath="$(RepositoryRoot)NuGet.config"
|
|
SourceName="Dependencies"
|
|
SourceUri="$(DependencyBuildDirectory)"
|
|
Condition="Exists('$(DependencyBuildDirectory)')" />
|
|
</Target>
|
|
|
|
<Target Name="BuildPackageCache">
|
|
<GetOSPlatform>
|
|
<!-- Returns {Linux, macOS, Windows} -->
|
|
<Output TaskParameter="PlatformName" PropertyName="OSPlatform" />
|
|
</GetOSPlatform>
|
|
|
|
<PropertyGroup>
|
|
<OutputZipSufix Condition="'$(OSPlatform)' == 'Windows'">win</OutputZipSufix>
|
|
<OutputZipSufix Condition="'$(OSPlatform)' == 'Linux'">linux</OutputZipSufix>
|
|
<OutputZipSufix Condition="'$(OSPlatform)' == 'macOS'">osx</OutputZipSufix>
|
|
|
|
<OutputZip>$(ArtifactsDir)Build.RuntimeStore.$(OutputZipSufix)-$(VersionSuffix).zip</OutputZip>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<RIDs Include="win7-x64" Condition="'$(OSPlatform)'=='Windows'" >
|
|
<PlatformDir>x64</PlatformDir>
|
|
</RIDs>
|
|
<RIDs Include="win7-x86" Condition="'$(OSPlatform)'=='Windows'" >
|
|
<PlatformDir>x86</PlatformDir>
|
|
</RIDs>
|
|
<RIDs Include="linux-x64" Condition="'$(OSPlatform)'=='Linux'" >
|
|
<PlatformDir>x64</PlatformDir>
|
|
</RIDs>
|
|
<RIDs Include="osx.10.12-x64" Condition="'$(OSPlatform)'=='macOS'" >
|
|
<PlatformDir>x64</PlatformDir>
|
|
</RIDs>
|
|
</ItemGroup>
|
|
|
|
<RemoveDir Directories="$(PackageCacheOutputPath)" />
|
|
<RemoveDir Directories="$(WorkingDirectory)%(RIDs.Identity)\" />
|
|
<Exec Command="dotnet store --manifest $(MetaPackageFile) --configuration Release --framework netcoreapp2.0 --runtime %(RIDs.Identity) --output $(PackageCacheOutputPath) --framework-version 2.0.0-* --working-dir $(WorkingDirectory)%(RIDs.Identity)/" />
|
|
<MsBuild Projects="$(MetaPackageFile)" Targets="CollectDeps" Properties="DepsOutputPath=$(DepsOutputPath)"/>
|
|
|
|
<ItemGroup>
|
|
<PackageStoreManifestFiles Include="$(PackageCacheOutputPath)%(RIDs.PlatformDir)\**\artifact.xml">
|
|
<DestinationFile>manifest.%(RIDs.Identity).xml</DestinationFile>
|
|
</PackageStoreManifestFiles>
|
|
<PackageCacheFiles Include="$(PackageCacheOutputPath)**\*" Exclude="$(PackageCacheOutputPath)**\artifact.xml" />
|
|
<DepsFiles Include="$(DepsOutputPath)**\*" />
|
|
</ItemGroup>
|
|
|
|
<Move SourceFiles="%(PackageStoreManifestFiles.FullPath)" DestinationFiles="$(ArtifactsDir)%(PackageStoreManifestFiles.DestinationFile)" />
|
|
|
|
<Copy SourceFiles="@(PackageCacheFiles)" DestinationFolder="$(ArtifactsZipDir)store\%(RecursiveDir)" />
|
|
<Copy SourceFiles="@(DepsFiles)" DestinationFolder="$(ArtifactsZipDir)additionalDeps\%(RecursiveDir)" />
|
|
|
|
<ItemGroup>
|
|
<OutputZipFiles Include="$(ArtifactsZipDir)**\*" />
|
|
</ItemGroup>
|
|
|
|
<ZipArchive File="$(OutputZip)" SourceFiles="@(OutputZipFiles)" WorkingDirectory="$(ArtifactsZipDir)" />
|
|
|
|
<!--Drop a nuspec file in artifacts for packing zip files into a nupkg-->
|
|
<Copy SourceFiles="$(RepositoryRoot)build\Build.RuntimeStore.nuspec" DestinationFolder="$(ArtifactsDir)" Condition="'$(OSPlatform)'=='Windows'" />
|
|
<WriteLinesToFile File="$(ArtifactsDir)version.txt" Lines="$(VersionPrefix)-$(VersionSuffix)" Overwrite="true" Condition="'$(OSPlatform)'=='Windows'" />
|
|
</Target>
|
|
|
|
<Target Name="AddManifestsToNupkg">
|
|
<Error Text="COHERENCE_DROP_LOCATION is not specified. This requires a path like \\aspnetci\drops\Coherence\{build-number}"
|
|
Condition=" '$(COHERENCE_DROP_LOCATION)' == '' " />
|
|
|
|
<ItemGroup>
|
|
<MetaPackageNupkg Include="$(COHERENCE_DROP_LOCATION)\ship\Microsoft.AspNetCore.All.*.nupkg" />
|
|
<ManifestFiles Include="$(ArtifactsDir)*.xml"/>
|
|
</ItemGroup>
|
|
|
|
<RemoveDir Directories="@(MetaPackageNupkg->'$(TempDir)%(Filename)')" />
|
|
<Copy SourceFiles="@(MetaPackageNupkg)" DestinationFolder="$(ArtifactsDir)" />
|
|
<UnzipArchive File="$(ArtifactsDir)%(MetaPackageNupkg.FileName)%(MetaPackageNupkg.Extension)" Destination="@(MetaPackageNupkg->'$(TempDir)%(Filename)')" />
|
|
<Copy SourceFiles="@(ManifestFiles)" DestinationFolder="@(MetaPackageNupkg->'$(TempDir)%(Filename)\build\')" />
|
|
|
|
<ItemGroup>
|
|
<ArchiveFiles Include="$(TempDir)%(MetaPackageNupkg.Filename)\**\*" />
|
|
</ItemGroup>
|
|
|
|
<ZipArchive File="%(MetaPackageNupkg.FullPath)" SourceFiles="@(ArchiveFiles)" WorkingDirectory="@(MetaPackageNupkg->'$(TempDir)%(Filename)')" />
|
|
</Target>
|
|
</Project> |