aspnetcore/build/RepositoryBuild.targets

83 lines
3.2 KiB
XML

<Project>
<Import Project="$(_BuildGraphFile)" />
<Target Name="BuildRepositories">
<ItemGroup>
<BatchedRepository Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
RepositoryToBuild=%(RepositoryToBuildInOrder.Identity);
BuildRepositoryRoot=$(_CloneRepositoryRoot)%(RepositoryToBuildInOrder.Identity)\
</AdditionalProperties>
<BuildGroup>%(RepositoryToBuildInOrder.Order)</BuildGroup>
</BatchedRepository>
</ItemGroup>
<PropertyGroup>
<BatchBuilds Condition="$(BuildInParallel) AND '$(CompileOnly)'=='true'">true</BatchBuilds>
<BatchBuilds Condition="'$(BatchBuilds)'==''">false</BatchBuilds>
</PropertyGroup>
<MSBuild
Projects="@(BatchedRepository)"
BuildInParallel="$(BatchBuilds)"
Targets="_BuildRepository"
Properties="BuildGroup=%(BatchedRepository.BuildGroup)" />
</Target>
<Target Name="_BuildRepository" DependsOnTargets="_PinVersions">
<PropertyGroup>
<RepositoryKoreBuildDirectory>$(BuildRepositoryRoot).build\</RepositoryKoreBuildDirectory>
<RepositoryArtifactsDirectory>$(BuildRepositoryRoot)artifacts\build\</RepositoryArtifactsDirectory>
</PropertyGroup>
<ItemGroup>
<KoreBuildFiles Include="$(KoreBuildDirectory)**\*" />
</ItemGroup>
<Message Text="============ Building $(RepositoryToBuild) ============" Importance="High" />
<Copy SourceFiles="@(KoreBuildFiles)" DestinationFolder="$(RepositoryKoreBuildDirectory)%(RecursiveDir)" />
<ItemGroup>
<RepositoryKoreBuildProject Include="$(RepositoryKoreBuildDirectory)$(KoreBuildProject)">
<AdditionalProperties>
RepositoryRoot=$(BuildRepositoryRoot);
BuildNumber=$(BuildNumber);
Configuration=$(Configuration)
</AdditionalProperties>
</RepositoryKoreBuildProject>
</ItemGroup>
<MSBuild
Projects="@(RepositoryKoreBuildProject)"
Targets="Restore"
Properties="PreflightRestore=true" />
<MSBuild
Projects="@(RepositoryKoreBuildProject)"
Targets="$(_RepositoryBuildTargets)" />
<ItemGroup>
<RepositoryArtifacts Include="$(RepositoryArtifactsDirectory)*" />
</ItemGroup>
<Copy
SourceFiles="@(RepositoryArtifacts)"
DestinationFolder="$(UniverseBuildDir)" />
<Exec
Command="$(DotNetPath) nuget push &quot;%(RepositoryArtifacts.Identity)&quot; -s $(NuGetPublishVolatileFeed) -k $(APIKEY)"
Condition="'$(PublishPackages)'=='true' AND '%(RepositoryArtifacts.Extension)'=='.nupkg'" />
<Message Text="============ Done building $(RepositoryToBuild) ============" Importance="High" />
</Target>
<Target Name="_PinVersions">
<PropertyGroup>
<PinToolBinary>$(RepositoryRoot)tools\PinVersions\bin\$(Configuration)\netcoreapp1.1\PinVersions.dll</PinToolBinary>
<PinVersionArgs>$(DotNetPath) $(PinToolBinary) --graph-specs-root &quot;$(_RestoreGraphSpecsDirectory) &quot; -s &quot;$(UniverseBuildDir) &quot; &quot;$(BuildRepositoryRoot) &quot;</PinVersionArgs>
<PinVersionArgs Condition="Exists('$(_DependencyPackagesDirectory)')">$(PinVersionArgs) -s &quot;$(_DependencyPackagesDirectory) &quot;</PinVersionArgs>
</PropertyGroup>
<Exec Command="$(PinVersionArgs)" />
</Target>
</Project>