This repository was archived by the owner on Dec 18, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 446
/
Copy pathrepo.targets
156 lines (134 loc) · 8.21 KB
/
repo.targets
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<Project>
<ItemGroup>
<NPMPackage Include="$(RepositoryRoot)clients/ts/signalr">
<TarName>aspnet-signalr</TarName>
<PackageId>@aspnet/signalr</PackageId>
</NPMPackage>
<NPMPackage Include="$(RepositoryRoot)clients/ts/signalr-protocol-msgpack">
<TarName>aspnet-signalr-protocol-msgpack</TarName>
<PackageId>@aspnet/signalr-protocol-msgpack</PackageId>
</NPMPackage>
</ItemGroup>
<PropertyGroup>
<!-- Pass the Java Package Version down to Gradle -->
<GradleOptions>-PpackageVersion="$(JavaPackageVersion)"</GradleOptions>
<!-- Disable gradle daemon on CI since the CI seems to try to wait for the daemon to shut down, which it doesn't do :) -->
<GradleOptions Condition="'$(CI)' == 'true'">$(GradleOptions) -Dorg.gradle.daemon=false</GradleOptions>
<RequireJava Condition="'$(CI)' == 'true'">true</RequireJava>
</PropertyGroup>
<PropertyGroup>
<RestoreDependsOn>$(RestoreDependsOn);RestoreNpm</RestoreDependsOn>
</PropertyGroup>
<Target Name="RestoreNpm" Condition="'$(PreflightRestore)' != 'True'">
<Message Text="Restoring NPM modules" Importance="high" />
<Exec Command="npm install --no-optional" WorkingDirectory="$(RepositoryRoot)clients/ts/common" />
<Exec Command="npm install --no-optional" WorkingDirectory="$(RepositoryRoot)clients/ts/FunctionalTests" />
<Exec Command="npm install --no-optional" WorkingDirectory="$(RepositoryRoot)clients/ts/signalr" />
<Exec Command="npm install --no-optional" WorkingDirectory="$(RepositoryRoot)clients/ts/signalr-protocol-msgpack" />
</Target>
<PropertyGroup>
<TestDependsOn>$(TestDependsOn);RunTSClientNodeTests;RunBrowserTests;RunJavaTests</TestDependsOn>
</PropertyGroup>
<Target Name="RunTSClientNodeTests">
<Message Text="Running JavaScript client Node tests" Importance="high" />
<Exec Command="npm test" WorkingDirectory="$(RepositoryRoot)clients/ts" IgnoreStandardErrorWarningFormat="true" />
</Target>
<Target Name="RunBrowserTests">
<Message Text="Running JavaScript client Browser tests" Importance="high" />
<Exec Command="npm run test:inner -- --no-color --configuration $(Configuration)" WorkingDirectory="$(RepositoryRoot)clients/ts/FunctionalTests" IgnoreStandardErrorWarningFormat="true" />
</Target>
<Target Name="RunJavaTests" Condition="'$(HasJava)' == 'true' AND '$(SkipJavaClient)' != 'true' ">
<Message Text="Running Java client tests" Importance="high" />
<Message Text="> gradlew $(GradleOptions) test" Importance="high" />
<Exec Command="./gradlew $(GradleOptions) test" WorkingDirectory="$(RepositoryRoot)clients/java/signalr" IgnoreStandardErrorWarningFormat="true" />
</Target>
<PropertyGroup>
<GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);GetNpmArtifactInfo;GetJavaArtifactInfo</GetArtifactInfoDependsOn>
</PropertyGroup>
<Target Name="GetNpmArtifactInfo">
<ItemGroup>
<NPMPackage Update="%(NPMPackage)">
<PackageJson>$([System.IO.Path]::Combine(%(NPMPackage.FullPath), 'package.json'))</PackageJson>
<OutputTar>$([System.IO.Path]::Combine(%(NPMPackage.FullPath), '%(NPMPackage.TarName)-$(PackageVersion).tgz'))</OutputTar>
<ArtifactPath>$([System.IO.Path]::Combine($(BuildDir), '%(NPMPackage.TarName)-$(PackageVersion).tgz'))</ArtifactPath>
</NPMPackage>
<ArtifactInfo Include="%(NPMPackage.ArtifactPath)">
<ArtifactType>NpmPackage</ArtifactType>
<PackageId>%(NPMPackage.PackageId)</PackageId>
<Version>$(PackageVersion)</Version>
<Category>ship</Category>
</ArtifactInfo>
</ItemGroup>
<ItemGroup>
<FilesToExcludeFromSigning Include="%(NPMPackage.ArtifactPath);" />
</ItemGroup>
</Target>
<Target Name="GetJavaArtifactInfo" DependsOnTargets="DetectJava" Condition=" '$(SkipJavaClient)' != 'true' ">
<ItemGroup Condition="'$(HasJava)' == 'true'">
<ArtifactInfo Include="$(BuildDir)\%(Jars.Identity)">
<ArtifactType>JavaJar</ArtifactType>
<Version>$(JavaClientVersion)</Version>
<Category>ship</Category>
</ArtifactInfo>
<ArtifactInfo Include="$(BuildDir)\%(PomFile.Identity)">
<ArtifactType>MavenPOM</ArtifactType>
<Version>$(JavaClientVersion)</Version>
<Category>ship</Category>
</ArtifactInfo>
<FilesToSign Include="$(BuildDir)\%(Jars.Identity)" Certificate="$(JarSigningCertName)" />
<FilesToExcludeFromSigning Include="$(BuildDir)\%(PomFile.Identity)" />
</ItemGroup>
</Target>
<PropertyGroup>
<PrepareDependsOn>DetectJava;$(PrepareDependsOn)</PrepareDependsOn>
</PropertyGroup>
<Target Name="DetectJava">
<Exec Command="./gradlew $(GradleOptions)" WorkingDirectory="$(RepositoryRoot)clients/java/signalr" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true">
<Output TaskParameter="ExitCode" PropertyName="JavaDetectExitCode" />
</Exec>
<Error Text="Failed to detect Java Runtime Environment (JRE)" Condition="'$(JavaDetectExitCode)' != 0 And '$(RequireJava)' == 'true'" />
<Message Text="Failed to detect Java Runtime Environment (JRE). Skipping Java client build." Importance="high" Condition="'$(JavaDetectExitCode)' != 0 And '$(RequireJava)' != 'true'" />
<Message Text="Successfully detected Java Runtime Environment (JRE)" Importance="high" Condition="'$(JavaDetectExitCode)' == 0" />
<!-- The build could still fail if the JDK isn't installed, but we can't reliably detect that without a bunch more code -->
<PropertyGroup Condition="'$(JavaDetectExitCode)' == '0'">
<HasJava>true</HasJava>
</PropertyGroup>
</Target>
<PropertyGroup>
<CompileDependsOn>Restore;BuildNPMPackages;$(CompileDependsOn);BuildJavaClient</CompileDependsOn>
</PropertyGroup>
<Target Name="BuildNPMPackages" DependsOnTargets="RestoreNpm;GetNpmArtifactInfo">
<Message Text="Building %(NPMPackage.PackageId)..." Importance="high" />
<Exec Command="npm run build" WorkingDirectory="%(NPMPackage.FullPath)" />
<Message Text="Building Browser Functional Tests..." Importance="high" />
<Exec Command="npm run build" WorkingDirectory="$(RepositoryRoot)clients/ts/FunctionalTests" IgnoreStandardErrorWarningFormat="true" />
</Target>
<Target Name="BuildJavaClient" Condition="'$(HasJava)' == 'true' AND '$(SkipJavaClient)' != 'true' " DependsOnTargets="GetJavaArtifactInfo">
<Message Text="Building Java client" Importance="high" />
<Message Text="> gradlew $(GradleOptions) compileJava" Importance="high" />
<Exec Command="./gradlew $(GradleOptions) compileJava" WorkingDirectory="$(RepositoryRoot)clients/java/signalr" />
</Target>
<PropertyGroup>
<PackageDependsOn>Compile;PackNPMPackages;$(PackageDependsOn);PackJavaClient</PackageDependsOn>
</PropertyGroup>
<Target Name="PackNPMPackages" DependsOnTargets="BuildNPMPackages">
<Message Text="Packing %(NPMPackage.PackageId)..." Importance="high" />
<Copy SourceFiles="%(NPMPackage.PackageJson)" DestinationFiles="%(NPMPackage.PackageJson).bak" />
<Exec Command="npm --no-git-tag-version --allow-same-version version $(PackageVersion)" WorkingDirectory="%(NPMPackage.FullPath)" />
<Exec Command="npm pack" WorkingDirectory="%(NPMPackage.FullPath)" />
<Delete Files="%(NPMPackage.ArtifactPath)" Condition="Exists('%(NPMPackage.ArtifactPath)')" />
<Move SourceFiles="%(NPMPackage.OutputTar)" DestinationFiles="%(NPMPackage.ArtifactPath)" />
<Move SourceFiles="%(NPMPackage.PackageJson).bak" DestinationFiles="%(NPMPackage.PackageJson)" />
</Target>
<ItemGroup>
<Jars Include="signalr-$(JavaPackageVersion).jar;signalr-$(JavaPackageVersion)-javadoc.jar;signalr-$(JavaPackageVersion)-sources.jar;" />
<PomFile Include="signalr-$(JavaPackageVersion).pom" />
<JavaBuildFiles Include="@(Jars);@(PomFile)"/>
</ItemGroup>
<Target Name="PackJavaClient" Condition="'$(HasJava)' == 'true' AND '$(SkipJavaClient)' != 'true' ">
<Message Text="Packing Java client" Importance="high" />
<Message Text="> gradlew $(GradleOptions) createPackage" Importance="high" />
<Exec Command="./gradlew $(GradleOptions) createPackage" WorkingDirectory="$(RepositoryRoot)clients/java/signalr" />
<Copy SourceFiles="$(RepositoryRoot)clients/java/signalr\build\libs\%(JavaBuildFiles.Identity)" DestinationFolder="$(BuildDir)" />
</Target>
</Project>