This repository was archived by the owner on Jan 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathDirectory.Build.targets
More file actions
74 lines (61 loc) · 4.3 KB
/
Directory.Build.targets
File metadata and controls
74 lines (61 loc) · 4.3 KB
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
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GitSkipCache>true</GitSkipCache>
<GitIgnoreTagVersion>true</GitIgnoreTagVersion>
<Company>Microsoft</Company>
<Product>Microsoft NuGet Packaging</Product>
<Copyright>Copyright © 2016</Copyright>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MSBuilder.CI" Version="0.1.2" PrivateAssets="all" />
<PackageReference Include="GitInfo" Version="2.0.7" PrivateAssets="all" />
</ItemGroup>
<Target Name="Version" DependsOnTargets="SetVersion">
<Message Importance="high" Text="PackageVersion=$(PackageVersion)
AssemblyVersion=$(AssemblyVersion)" />
</Target>
<Target Name="_SetLocalCommits" BeforeTargets="_GitPopulateVersionInfo" Condition="'$(CI)' != 'true'">
<PropertyGroup>
<!-- Local builds should always be commit count +1, since we'll be always working on the next version to be published. -->
<GitCommits>$([MSBuild]::Add('$(GitCommits)', '1'))</GitCommits>
</PropertyGroup>
</Target>
<!-- '$(ExcludeRestorePackageImports)' == 'true' when invoking /t:Restore -->
<Target Name="SetVersion" BeforeTargets="GetAssemblyVersion;GetPackageVersion" DependsOnTargets="GitVersion" Condition="'$(ExcludeRestorePackageImports)' != 'true'">
<PropertyGroup>
<!-- PR builds are *always* prerelease -->
<!-- TFS case: BUILD_REASON=PullRequest and BUILD_SOURCEBRANCH=refs/pull/#/merge -->
<GitSemVerDashLabel Condition="'$(TF_BUILD)' == 'true' and '$(BUILD_REASON)' == 'PullRequest'">$(GitSemVerDashLabel)-pr$(BUILD_SOURCEBRANCH.Substring(10).TrimEnd('/merge'))</GitSemVerDashLabel>
<GitSemVerDashLabel Condition="'$(APPVEYOR_PULL_REQUEST_NUMBER)' != ''">$(GitSemVerDashLabel)-pr$(APPVEYOR_PULL_REQUEST_NUMBER)</GitSemVerDashLabel>
<!-- NOTE: build metadata does not affect version matching, so even if you work from a different branch+commit that gets
rebased+merged later on, the version # might still be the same (provided there weren't additional commits in master
before the rebase+merge.
-->
<_IndexOfBranchSlash>$(GitBranch.LastIndexOf('/'))</_IndexOfBranchSlash>
<_IndexOfBranchSubstring>$([MSBuild]::Add('$(_IndexOfBranchSlash)', '1'))</_IndexOfBranchSubstring>
<_GitBranch Condition="'$(_IndexOfBranchSlash)' != '0'">$(GitBranch.Substring($(_IndexOfBranchSubstring)))</_GitBranch>
<_GitBranch Condition="'$(_IndexOfBranchSlash)' == '0'">$(GitBranch)</_GitBranch>
<!-- We'll use GitFlow and ship publicly from a versioned branch, meaning we don't need branch metadata in those cases -->
<GitSemVerDashLabel Condition="'$(GitSemVerDashLabel)' == '' and $(_GitBranch.StartsWith('v')) == 'false'">-$(_GitBranch)</GitSemVerDashLabel>
<SemVerMetadata Condition="'$(GitSemVerDashLabel)' != '-$(_GitBranch)' and $(_GitBranch.StartsWith('v')) == 'false' and '$(_GitBranch)' != 'undefined'">$(_GitBranch).</SemVerMetadata>
<SemVerMetadata>$(SemVerMetadata)sha.$(GitCommit)</SemVerMetadata>
<!-- If there is a pre-release label, fix the major.minor.build and increment the release label digit instead. -->
<PackageVersion Condition="'$(GitSemVerDashLabel)' != ''">$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel).$(GitCommits)+$(SemVerMetadata)</PackageVersion>
<!-- If shipping stable, semver the package version -->
<PackageVersion Condition="'$(GitSemVerDashLabel)' == ''">$(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)+$(SemVerMetadata)</PackageVersion>
<AssemblyVersion>$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)</AssemblyVersion>
<FileVersion>$(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)</FileVersion>
<InformationalVersion>$(PackageVersion)</InformationalVersion>
</PropertyGroup>
</Target>
<Target Name="LocalPublish" Condition="'$(CI)' != 'true'" AfterTargets="Pack">
<ItemGroup>
<ToDelete Include="$(TEMP)\packages\$(PackageId)*.nupkg" />
</ItemGroup>
<Delete Files="@(ToDelete)" />
<MakeDir Directories="$(TEMP)\packages" Condition="!Exists('$(TEMP)\packages')" />
<Copy SourceFiles="$(PackageTargetPath)" DestinationFolder="$(TEMP)\packages" />
</Target>
<Import Project="$(MSBuildProjectDirectory)\$(MSBuildProjectName).targets" Condition="Exists('$(MSBuildProjectDirectory)\$(MSBuildProjectName).targets')" />
</Project>