RepositoryBuild.targets 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <Project>
  2. <Import Project="$(_BuildGraphFile)" />
  3. <Target Name="BuildRepositories">
  4. <ItemGroup>
  5. <BatchedRepository Include="$(MSBuildProjectFullPath)">
  6. <BuildGroup>%(RepositoryToBuildInOrder.Order)</BuildGroup>
  7. <Repository>%(RepositoryToBuildInOrder.Identity)</Repository>
  8. <AdditionalProperties>
  9. RepositoryToBuild=%(RepositoryToBuildInOrder.Identity);
  10. BuildRepositoryRoot=$(_CloneRepositoryRoot)%(RepositoryToBuildInOrder.Identity)\
  11. </AdditionalProperties>
  12. </BatchedRepository>
  13. </ItemGroup>
  14. <PropertyGroup>
  15. <BatchBuilds Condition="$(BuildInParallel) AND '$(CompileOnly)'=='true'">true</BatchBuilds>
  16. <BatchBuilds Condition="'$(BatchBuilds)'==''">false</BatchBuilds>
  17. </PropertyGroup>
  18. <Message
  19. Text="Building repositories in the following batches:"
  20. Importance="High"
  21. Condition="'$(BatchBuilds)'=='true'" />
  22. <Message
  23. Text="%(BatchedRepository.BuildGroup): @(BatchedRepository -> '%(Repository)', ', ')"
  24. Importance="High"
  25. Condition="'$(BatchBuilds)'=='true'" />
  26. <Message
  27. Text="Building repositories in the following order:"
  28. Importance="High"
  29. Condition="'$(BatchBuilds)'!='true'" />
  30. <Message
  31. Text="%(BatchedRepository.Repository)"
  32. Importance="High"
  33. Condition="'$(BatchBuilds)'!='true'" />
  34. <MSBuild
  35. Projects="@(BatchedRepository)"
  36. BuildInParallel="$(BatchBuilds)"
  37. Targets="_BuildRepository"
  38. Properties="BuildGroup=%(BatchedRepository.BuildGroup)" />
  39. </Target>
  40. <Target Name="_BuildRepository" DependsOnTargets="_PinVersions">
  41. <PropertyGroup>
  42. <BuildArguments>$(_RepositoryBuildTargets) /p:BuildNumber=$(BuildNumber) /p:Configuration=$(Configuration)</BuildArguments>
  43. <RepositoryArtifactsDirectory>$(BuildRepositoryRoot)artifacts\build\</RepositoryArtifactsDirectory>
  44. <_BuildScriptToExecute Condition="'$(OS)'!='Windows_NT'">build.sh</_BuildScriptToExecute>
  45. <_BuildScriptToExecute Condition="'$(OS)'=='Windows_NT'">build.cmd</_BuildScriptToExecute>
  46. </PropertyGroup>
  47. <Message Text="============ Building $(RepositoryToBuild) ============" Importance="High" />
  48. <Exec
  49. Command="./$(_BuildScriptToExecute) $(BuildArguments)"
  50. EnvironmentVariables="KOREBUILD_SKIP_RUNTIME_INSTALL=1"
  51. IgnoreStandardErrorWarningFormat="true"
  52. WorkingDirectory="$(BuildRepositoryRoot)" />
  53. <ItemGroup>
  54. <RepositoryArtifacts Include="$(RepositoryArtifactsDirectory)*" />
  55. <RepositorySymbolNupkgs Include="$(RepositoryArtifactsDirectory)*.symbols.nupkg" />
  56. <RepositoryNupkgs Include="$(RepositoryArtifactsDirectory)*.nupkg" Exclude="@(RepositorySymbolNupkgs)" />
  57. </ItemGroup>
  58. <Copy
  59. SourceFiles="@(RepositoryArtifacts)"
  60. DestinationFolder="$(UniverseBuildDir)" />
  61. <Message Text="Publishing the following packages to the volatile feed: @(RepositoryNupkgs -> '%(Filename)%(Extension)', ', ')"
  62. Condition="'$(PublishPackages)'=='true' AND '@(RepositoryNupkgs)' != ''" />
  63. <Exec
  64. Command="$(DotNetPath) nuget push &quot;%(RepositoryNupkgs.Identity)&quot; -s $(NuGetPublishVolatileFeed) -k $(APIKEY)"
  65. Condition="'$(PublishPackages)'=='true' AND '@(RepositoryNupkgs)' != ''" />
  66. <Message Text="============ Done building $(RepositoryToBuild) ============" Importance="High" />
  67. </Target>
  68. <Target Name="_PinVersions">
  69. <PropertyGroup>
  70. <PinToolBinary>$(RepositoryRoot)tools\PinVersions\bin\$(Configuration)\netcoreapp1.1\PinVersions.dll</PinToolBinary>
  71. <PinVersionArgs>$(DotNetPath) $(PinToolBinary) --graph-specs-root &quot;$(_RestoreGraphSpecsDirectory) &quot; -s &quot;$(UniverseBuildDir) &quot; &quot;$(BuildRepositoryRoot) &quot;</PinVersionArgs>
  72. <PinVersionArgs Condition="Exists('$(_DependencyPackagesDirectory)')">$(PinVersionArgs) -s &quot;$(_DependencyPackagesDirectory) &quot;</PinVersionArgs>
  73. </PropertyGroup>
  74. <Exec Command="$(PinVersionArgs)" />
  75. </Target>
  76. </Project>