This repository was archived by the owner on Dec 24, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 870
/
Copy pathbuild.proj
79 lines (65 loc) · 3.12 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
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Default"
xmlns='http://schemas.microsoft.com/developer/msbuild/2003' ToolsVersion="4.0">
<Import Project="$(MSBuildProjectDirectory)/build.tasks" />
<PropertyGroup>
<MajorVersion Condition="$(MajorVersion) == ''">6</MajorVersion>
<MinorVersion Condition="$(MinorVersion) == ''">0</MinorVersion>
<PatchVersion Condition="$(PatchVersion) == ''">$(BUILD_NUMBER)</PatchVersion>
</PropertyGroup>
<PropertyGroup>
<BuildSolutionDir>$(MSBuildProjectDirectory)/..</BuildSolutionDir>
<SrcDir>$(BuildSolutionDir)/src</SrcDir>
<TestsDir>$(BuildSolutionDir)/tests</TestsDir>
<Configuration Condition="$(Configuration) == ''">Release</Configuration>
<NuGetPackageDir>$(BuildSolutionDir)/NuGet/</NuGetPackageDir>
<PackageVersion>$(MajorVersion).$(MinorVersion).$(PatchVersion)</PackageVersion>
</PropertyGroup>
<PropertyGroup>
<DoBuildSolutionsDependsOn>
BeforeBuildSolutions;
BuildSolutions
</DoBuildSolutionsDependsOn>
</PropertyGroup>
<Target Name="BeforeBuildSolutions">
<Message Text="*****Before building solution*****" Importance="high"/>
<CallTarget Targets="UpdateVersion" />
</Target>
<Target Name="BuildSolutions">
<CallTarget Targets="ClearNuGetRestoreCaches" />
<MSBuild Projects="$(BuildSolutionDir)/src/ServiceStack.Redis.sln" Targets="Restore" />
<MSBuild Projects="$(BuildSolutionDir)/src/ServiceStack.Redis.sln" Targets="Build"
Properties="Configuration=$(Configuration)" />
</Target>
<!-- need to remove old caches from nuget restore from .Core csproj's -->
<Target Name="ClearNuGetRestoreCaches">
<RemoveDir Directories="$(SrcDir)/ServiceStack.Redis/obj" />
<RemoveDir Directories="$(TestsDir)/ServiceStack.Redis.Tests/obj" />
<RemoveDir Directories="$(TestsDir)/ServiceStack.Redis.Tests.Sentinel/obj" />
<RemoveDir Directories="$(TestsDir)/Console.Tests/obj" />
<RemoveDir Directories="$(TestsDir)/ServiceStack.Redis.Benchmark/obj" />
</Target>
<Target Name="UpdateVersion">
<!-- Update Version -->
<ItemGroup>
<RegexTransform Include="$(BuildSolutionDir)/src/Directory.Build.props;$(BuildSolutionDir)/tests/Directory.Build.props">
<Find><Version>[^<]*</Find>
<ReplaceWith><Version>$(PackageVersion)</ReplaceWith>
</RegexTransform>
</ItemGroup>
<RegexTransform Items="@(RegexTransform)" />
</Target>
<Target Name="Default" DependsOnTargets="$(DoBuildSolutionsDependsOn)">
<!-- ServiceStack.Redis -->
<MSBuild Projects="$(BuildSolutionDir)/src/ServiceStack.Redis/ServiceStack.Redis.csproj"
Targets="Build;Pack"
Properties="Configuration=$(Configuration)" />
<!-- Copy all *.nupkg to /NuGet -->
<ItemGroup>
<NugetPackagesToMove Include="$(BuildSolutionDir)/src/**/bin/$(Configuration)/*.nupkg"/>
</ItemGroup>
<Move SourceFiles="@(NugetPackagesToMove)" DestinationFolder="$(NuGetPackageDir)" />
<!-- leave .sln in optimal state then NuGet restore .sln to build -->
<CallTarget Targets="ClearNuGetRestoreCaches" />
</Target>
</Project>