| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <Project>
- <Target Name="_BuildRepositories" DependsOnTargets="GeneratePropsFiles">
- <ItemGroup>
- <BatchedRepository Include="$(MSBuildProjectFullPath)">
- <BuildGroup>%(RepositoryBuildOrder.Order)</BuildGroup>
- <Repository>%(RepositoryBuildOrder.Identity)</Repository>
- <AdditionalProperties>
- RepositoryToBuild=%(RepositoryBuildOrder.Identity);
- BuildRepositoryRoot=$([MSBuild]::NormalizeDirectory(%(RepositoryBuildOrder.RootPath)))
- </AdditionalProperties>
- </BatchedRepository>
- </ItemGroup>
- <PropertyGroup>
- <BatchBuilds Condition="$(BuildInParallel) AND '$(SkipTests)'=='true'">true</BatchBuilds>
- <BatchBuilds Condition="'$(BatchBuilds)'==''">false</BatchBuilds>
- </PropertyGroup>
- <ItemGroup>
- <PinnedArtifactInfo Include="@(ArtifactInfo)" Condition="'$(BuildGraphOf)' == ''" />
- </ItemGroup>
- <!-- If we are building a sub-graph, we need to re-examine the list of artifacts that will actual build. -->
- <MSBuild Projects="$(MSBuildProjectFullPath)"
- Targets="GetArtifactInfo"
- Properties="RepositoryRoot=$(SubmoduleRoot)%(RepositoryBuildOrder.Identity)\;Configuration=$(Configuration);BuildNumber=$(BuildNumber)"
- Condition="'$(BuildGraphOf)' != ''">
- <Output TaskParameter="TargetOutputs" ItemName="PinnedArtifactInfo" />
- </MSBuild>
- <MSBuild
- Projects="@(BatchedRepository)"
- BuildInParallel="$(BatchBuilds)"
- StopOnFirstFailure="true"
- Targets="_BuildRepository"
- Properties="BuildGroup=%(BatchedRepository.BuildGroup);BuildNumber=$(BuildNumber);IsFinalBuild=$(IsFinalBuild);Configuration=$(Configuration)" />
- </Target>
- <Target Name="_BuildRepository">
- <PropertyGroup>
- <!-- Should reduce allowable package feeds to only nuget.org. -->
- <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:AspNetUniverseBuildOffline=true</RepositoryBuildArguments>
- <!-- If there are duplicate properties, the properties which are defined later in the order would override the earlier ones -->
- <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)</RepositoryBuildArguments>
- <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath)</RepositoryBuildArguments>
- <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:BuildNumber=$(BuildNumber) /p:Configuration=$(Configuration)</RepositoryBuildArguments>
- <RepositoryBuildArguments>$(RepositoryBuildArguments) /noconsolelogger '/l:RepoTasks.FlowLogger,$(MSBuildThisFileDirectory)tasks\bin\publish\RepoTasks.dll;Summary;FlowId=$(RepositoryToBuild)'</RepositoryBuildArguments>
- <BuildArguments>$(_RepositoryBuildTargets) $(RepositoryBuildArguments)</BuildArguments>
- <RepositoryArtifactsRoot>$(BuildRepositoryRoot)artifacts</RepositoryArtifactsRoot>
- <RepositoryArtifactsBuildDirectory>$(RepositoryArtifactsRoot)\build\</RepositoryArtifactsBuildDirectory>
- <RepositoryArtifactsMSBuildDirectory>$(RepositoryArtifactsRoot)\msbuild\</RepositoryArtifactsMSBuildDirectory>
- <_BuildScriptToExecute Condition="'$(OS)'!='Windows_NT'">build.sh</_BuildScriptToExecute>
- <_BuildScriptToExecute Condition="'$(OS)'=='Windows_NT'">build.cmd</_BuildScriptToExecute>
- </PropertyGroup>
- <Message Text="============ Building $(RepositoryToBuild) ============" Importance="High" />
- <!-- Copy Korebuild lock file to individual repos to align version if the repo doesn't already have one -->
- <Message Text="Copying KoreBuild lockfile from Universe to repository $(BuildRepositoryRoot)"/>
- <Copy SourceFiles="$(RepositoryRoot)korebuild-lock.txt" DestinationFolder="$(BuildRepositoryRoot)" />
- <Exec
- Command="./$(_BuildScriptToExecute) -Path $(BuildRepositoryRoot) $(BuildArguments)"
- IgnoreStandardErrorWarningFormat="true"
- WorkingDirectory="$(RepositoryRoot)" />
- <ItemGroup>
- <RepositoryArtifacts Include="$(RepositoryArtifactsBuildDirectory)*" />
- <RepositoryMSBuildArtifacts Include="$(RepositoryArtifactsMSBuildDirectory)**\*.*" />
- </ItemGroup>
- <Copy
- SourceFiles="@(RepositoryArtifacts)"
- DestinationFolder="$(BuildDir)" />
- <Move
- SourceFiles="@(RepositoryMSBuildArtifacts)"
- DestinationFolder="$(ArtifactsDir)msbuild\$(RepositoryToBuild)\%(RecursiveDir)" />
- <Message Text="============ Done building $(RepositoryToBuild) ============" Importance="High" />
- </Target>
- </Project>
|