aboutsummaryrefslogtreecommitdiff
path: root/src/internal/SetBuildNumber/SetBuildNumber.proj
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/SetBuildNumber/SetBuildNumber.proj')
-rw-r--r--src/internal/SetBuildNumber/SetBuildNumber.proj96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/internal/SetBuildNumber/SetBuildNumber.proj b/src/internal/SetBuildNumber/SetBuildNumber.proj
new file mode 100644
index 00000000..e0993cd3
--- /dev/null
+++ b/src/internal/SetBuildNumber/SetBuildNumber.proj
@@ -0,0 +1,96 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4<Project Sdk="Microsoft.Build.NoTargets/3.0.4">
5 <PropertyGroup>
6 <TargetFramework>netcoreapp3.1</TargetFramework>
7 <!-- Disable central package version management since this project will write the central package version management file -->
8 <ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
9
10 <!-- Explicitly set the restore sources because this project may run before the build\artifacts folder has been created -->
11 <RestoreSources>https://api.nuget.org/v3/index.json</RestoreSources>
12 <RestoreIgnoreFailedSources>true</RestoreIgnoreFailedSources>
13 </PropertyGroup>
14
15 <PropertyGroup>
16 <SetBuildNumbersDependsOn>
17 __SetPropertiesFromGit;
18 SetAppVeyorBuildNumber;
19 SetGlobalJson;
20 SetDirectoryPackagesProps;
21 </SetBuildNumbersDependsOn>
22
23 <GlobalJsonPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\global.json))</GlobalJsonPath>
24 <CentralPackageVersionsPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\Directory.Packages.props))</CentralPackageVersionsPath>
25 </PropertyGroup>
26
27 <Target Name="SetAppVeyorBuildNumber"
28 Condition=" '$(APPVEYOR)'=='True' ">
29 <PropertyGroup>
30 <AppVeyorBuildNumber>$(InformationalVersion)</AppVeyorBuildNumber>
31 <AppVeyorBuildNumber Condition=" 'APPVEYOR_PULL_REQUEST_NUMBER'!='' ">PR#$(APPVEYOR_PULL_REQUEST_NUMBER)-$(AppVeyorBuildNumber)</AppVeyorBuildNumber>
32 </PropertyGroup>
33
34 <Message Importance="high" Text=" $(AppVeyorBuildNumber)" />
35
36 <Exec Command='appveyor UpdateBuild -Version "$(AppVeyorBuildNumber)"' />
37 </Target>
38
39
40 <Target Name="SetGlobalJson"
41 Inputs="global.json.pp"
42 Outputs="$(GlobalJsonPath)">
43 <PropertyGroup>
44 <GlobaJsonTextHeader>/* DO NOT MODIFY! Auto-generated from internal\SetBuildNumber\global.json.pp */</GlobaJsonTextHeader>
45 <GlobalJsonText>$([System.IO.File]::ReadAllText(global.json.pp))</GlobalJsonText>
46 <GlobalJsonText>$(GlobalJsonText.Replace('{apiversion}', $(ApiVersion)))</GlobalJsonText>
47 <GlobalJsonText>$(GlobalJsonText.Replace('{fileversion}', $(FileVersion)))</GlobalJsonText>
48 <GlobalJsonText>$(GlobalJsonText.Replace('{fullversion}', $(InformationalVersion)))</GlobalJsonText>
49 <GlobalJsonText>$(GlobalJsonText.Replace('{informationalversion}', $(InformationalVersion)))</GlobalJsonText>
50 <GlobalJsonText>$(GlobalJsonText.Replace('{height}', $(GitCommits)))</GlobalJsonText>
51 <GlobalJsonText>$(GlobalJsonText.Replace('{packageversion}', $(PackageVersion)))</GlobalJsonText>
52 <GlobalJsonText>$(GlobalJsonText.Replace('{version}', $(Version)))</GlobalJsonText>
53 </PropertyGroup>
54
55 <WriteLinesToFile File="$(GlobalJsonPath)"
56 Lines="$(GlobaJsonTextHeader);$(GlobalJsonText)"
57 Overwrite="true"
58 WriteOnlyWhenDifferent="true" />
59
60 <Message Importance="high" Text="$(MSBuildProjectName) -&gt; $(GlobalJsonPath)" />
61 </Target>
62
63
64 <Target Name="SetDirectoryPackagesProps"
65 Inputs="Directory.Packages.props.pp"
66 Outputs="$(CentralPackageVersionsPath)">
67 <PropertyGroup>
68 <CentralPackageVersionsTextHeader>&lt;!-- DO NOT MODIFY! Auto-generated from internal\SetBuildNumber\Directory.Packages.props.pp --&gt;</CentralPackageVersionsTextHeader>
69 <CentralPackageVersionsText>$([System.IO.File]::ReadAllText(Directory.Packages.props.pp))</CentralPackageVersionsText>
70 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{apiversion}', $(ApiVersion)))</CentralPackageVersionsText>
71 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{fileversion}', $(FileVersion)))</CentralPackageVersionsText>
72 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{fullversion}', $(InformationalVersion)))</CentralPackageVersionsText>
73 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{informationalversion}', $(InformationalVersion)))</CentralPackageVersionsText>
74 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{height}', $(GitCommits)))</CentralPackageVersionsText>
75 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{packageversion}', $(PackageVersion)))</CentralPackageVersionsText>
76 <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{version}', $(Version)))</CentralPackageVersionsText>
77 </PropertyGroup>
78
79 <WriteLinesToFile File="$(CentralPackageVersionsPath)"
80 Lines="$(CentralPackageVersionsTextHeader);$(CentralPackageVersionsText)"
81 Overwrite="true"
82 WriteOnlyWhenDifferent="true" />
83
84 <Message Importance="high" Text="$(MSBuildProjectName) -&gt; $(CentralPackageVersionsPath)" />
85 </Target>
86
87
88 <Target Name="SetBuildNumbers"
89 DependsOnTargets="$(SetBuildNumbersDependsOn)"
90 BeforeTargets="AfterBuild" />
91
92
93 <ItemGroup>
94 <PackageReference Include="GitInfo" Version="2.1.2" />
95 </ItemGroup>
96</Project>