forked from reactjs/React.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.proj
120 lines (110 loc) · 4.37 KB
/
build.proj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2014-2015, Facebook, Inc.
All rights reserved.
This source code is licensed under the BSD-style license found in the
LICENSE file in the root directory of this source tree. An additional grant
of patent rights can be found in the PATENTS file in the same directory.
-->
<Project ToolsVersion="4.0" DefaultTargets="Build;Test;Package" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Major>1</Major>
<Minor>3</Minor>
<Build>1</Build>
<Revision>0</Revision>
<DevNuGetServer>http://reactjs.net/packages/</DevNuGetServer>
<MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)\tools\MSBuildTasks</MSBuildCommunityTasksPath>
<SolutionFile>src\React.sln</SolutionFile>
<PackageOutputDir>output</PackageOutputDir>
</PropertyGroup>
<ItemGroup>
<PackageAssemblies Include="React" />
<PackageAssemblies Include="React.Web" />
<PackageAssemblies Include="React.Web.Mvc4" />
<PackageAssemblies Include="React.Web.Mvc3" />
<PackageAssemblies Include="System.Web.Optimization.React" />
<PackageAssemblies Include="Cassette.React" />
<PackageAssemblies Include="React.MSBuild" />
<PackageAssemblies Include="React.JavaScriptEngine.VroomJs" />
<PackageAssemblies Include="React.JavaScriptEngine.ClearScriptV8" />
</ItemGroup>
<Import Project="$(MSBuildProjectDirectory)\tools\MSBuildTasks\MSBuild.Community.Tasks.Targets" />
<UsingTask
AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll"
TaskName="TransformXml"
/>
<Target Name="RestorePackages">
<Exec
WorkingDirectory="$(MSBuildProjectDirectory)"
Command="tools\NuGet\nuget.exe restore $(SolutionFile)"
/>
</Target>
<Target Name="UpdateVersion">
<GitVersion LocalPath="$(MSBuildProjectDirectory)">
<Output TaskParameter="CommitHash" PropertyName="Revision" />
</GitVersion>
<!--TODO: Only do this if a dev build -->
<Time Format="yyyyMMdd-HHmm">
<Output TaskParameter="FormattedTime" PropertyName="Date" />
</Time>
<!-- Prepend date to build version if a dev build-->
<PropertyGroup Condition="$(BuildType) != 'Release'">
<Build>$(Build)-dev-$(Date)</Build>
</PropertyGroup>
<AssemblyInfo
CodeLanguage="CS"
OutputFile="src\SharedAssemblyVersionInfo.cs"
AssemblyVersion="$(Major).$(Minor)"
AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"
AssemblyInformationalVersion="$(Major).$(Minor).$(Build)"
/>
</Target>
<Target Name="Build" DependsOnTargets="RestorePackages;UpdateVersion">
<MSBuild Projects="$(SolutionFile)" Targets="Rebuild" Properties="Configuration=Release;Platform=Any CPU;NoWarn=1607" />
</Target>
<Target Name="Test" DependsOnTargets="Build">
<ItemGroup>
<TestAssemblies Include="bin/ReleaseTests/**/React.Tests*.dll" />
</ItemGroup>
<NUnit
ToolPath="src\packages\NUnit.Runners.2.6.3\tools"
Assemblies="@(TestAssemblies)"
/>
</Target>
<Target Name="GenerateNuSpecs">
<TransformXml
Source="src/template.nuspec"
Transform="src/%(PackageAssemblies.Identity)/%(PackageAssemblies.Identity).nutrans"
Destination="src/%(PackageAssemblies.Identity)/%(PackageAssemblies.Identity).nuspec"
/>
</Target>
<Target Name="Package" DependsOnTargets="Build;GenerateNuSpecs">
<!-- Delete old packages -->
<RemoveDir Directories="$(PackageOutputDir)" />
<!-- Create new packages -->
<MakeDir Directories="$(PackageOutputDir)" />
<Exec
WorkingDirectory="$(MSBuildProjectDirectory)"
Command="tools\NuGet\nuget.exe pack src/%(PackageAssemblies.Identity)/%(PackageAssemblies.Identity).csproj -IncludeReferencedProjects -Symbols -Prop Configuration=Release -OutputDirectory output"
/>
</Target>
<Target Name="Push">
<CallTarget Targets="PushDev" Condition="$(BuildType) != 'Release'" />
<CallTarget Targets="PushRelease" Condition="$(BuildType) == 'Release'" />
</Target>
<Target Name="PushRelease">
<ItemGroup>
<PackageFiles Include="$(PackageOutputDir)\*.nupkg" Exclude="$(PackageOutputDir)\*.symbols.nupkg" />
</ItemGroup>
<Exec
WorkingDirectory="$(MSBuildProjectDirectory)"
Command="tools\NuGet\nuget.exe push %(PackageFiles.Identity) -NonInteractive"
/>
</Target>
<Target Name="PushDev">
<Exec
WorkingDirectory="$(MSBuildProjectDirectory)"
Command="tools\NuGet\nuget.exe push $(PackageOutputDir)\*.symbols.nupkg -Source $(DevNuGetServer) -NonInteractive"
/>
</Target>
</Project>