Npm.Workspace.nodeproj 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <Project>
  2. <!-- Import Directory.Build.Props -->
  3. <Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.props" />
  4. <PropertyGroup>
  5. <IsShippingPackage>true</IsShippingPackage>
  6. <!-- This explicitly includes this project even though it's a test project, unit test project,
  7. etc. which would be excluded by default. -->
  8. <ExcludeFromDotNetBuild>false</ExcludeFromDotNetBuild>
  9. <IsTestProject>true</IsTestProject>
  10. <IsUnitTestProject>true</IsUnitTestProject>
  11. <TestDependsOnAspNetPackages>false</TestDependsOnAspNetPackages>
  12. <TestDependsOnAspNetAppPackages>false</TestDependsOnAspNetAppPackages>
  13. <TestDependsOnAspNetRuntime>false</TestDependsOnAspNetRuntime>
  14. <ContainsFunctionalTestAssets>false</ContainsFunctionalTestAssets>
  15. <BuildHelixPayload>false</BuildHelixPayload>
  16. <!-- Skip puppeteer tests until https://github.com/dotnet/aspnetcore/issues/54176 is resolved -->
  17. <_NpmAdditionalEnvironmentVariables>PUPPETEER_SKIP_DOWNLOAD=1;npm_config_cache=$(RepoRoot)src/submodules/Node-Externals/cache</_NpmAdditionalEnvironmentVariables>
  18. </PropertyGroup>
  19. <Target Name="_VerifyNPMCache" Condition="$(ContinuousIntegrationBuild) == 'true'" >
  20. <Message Text="Verifying NPM cache..." Importance="high" />
  21. <Exec
  22. Command="npm cache verify"
  23. WorkingDirectory="$(MSBuildThisFileDirectory).."
  24. EnvironmentVariables="$(_NpmAdditionalEnvironmentVariables)" />
  25. </Target>
  26. <Target Name="Restore" DependsOnTargets="_VerifyNPMCache">
  27. <Message Text="Restoring NPM packages..." Importance="high" />
  28. <Exec
  29. Command="npm ci --offline"
  30. WorkingDirectory="$(MSBuildThisFileDirectory).."
  31. EnvironmentVariables="$(_NpmAdditionalEnvironmentVariables)" />
  32. </Target>
  33. <Target Name="Build">
  34. <PropertyGroup>
  35. <PackageVersion>$(VersionPrefix)$(VersionSuffix)</PackageVersion>
  36. </PropertyGroup>
  37. <MakeDir Directories="$(IntermediateOutputPath)" Condition="!Exists('$(IntermediateOutputPath)')" />
  38. <Message Text="Building NPM packages..." Importance="high" />
  39. <Exec
  40. Command="node $(MSBuildThisFileDirectory)scripts/npm/pack-workspace.mjs --update-versions $(RepoRoot)package.json $(PackageVersion) $(PackageOutputPath) $(IntermediateOutputPath)"
  41. EnvironmentVariables="$(_NpmAdditionalEnvironmentVariables)" />
  42. <Exec
  43. Command="npm run build"
  44. WorkingDirectory="$(MSBuildThisFileDirectory).."
  45. />
  46. </Target>
  47. <Target Name="_Test" BeforeTargets="Test">
  48. <Message Text="Testing NPM packages..." Importance="high" />
  49. <Exec Command="npm run test" ContinueOnError="true" WorkingDirectory="$(MSBuildThisFileDirectory).." />
  50. </Target>
  51. <Target Name="Pack">
  52. <PropertyGroup>
  53. <PackageVersion>$(VersionPrefix)$(VersionSuffix)</PackageVersion>
  54. </PropertyGroup>
  55. <Message Text="Packing NPM packages..." Importance="high" />
  56. <MakeDir Directories="$(PackageOutputPath)" Condition="!Exists('$(PackageOutputPath)')" />
  57. <Exec
  58. Command="node $(MSBuildThisFileDirectory)scripts/npm/pack-workspace.mjs --create-packages $(RepoRoot)package.json $(PackageVersion) $(PackageOutputPath) $(IntermediateOutputPath)"
  59. EnvironmentVariables="$(_NpmAdditionalEnvironmentVariables)" />
  60. <ItemGroup>
  61. <_NpmGeneratedPackages Include="$(PackageOutputPath)/*.tgz" />
  62. </ItemGroup>
  63. <PropertyGroup>
  64. <_NpmFiles>@(_NpmGeneratedPackages->'📦 $(PackageOutputPath)%(FileName)%(Extension)', '%0a ')</_NpmFiles>
  65. </PropertyGroup>
  66. <Message Importance="High" Text="$(MSBuildProjectName) -> %0a%20%20$(_NpmFiles)" />
  67. </Target>
  68. <!-- Import Directory.Build.targets -->
  69. <Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.targets" />
  70. </Project>