54 lines
3.3 KiB
XML
54 lines
3.3 KiB
XML
<Project>
|
|
<Target Name="GetGitBranch" BeforeTargets="ValidateSolutionConfiguration"
|
|
Condition="!Exists('$(SolutionDir)changes.log')">
|
|
<Exec ConsoleToMSBuild="True" IgnoreExitCode="true" Command="git rev-parse --abbrev-ref HEAD"
|
|
StandardOutputImportance="low" StandardErrorImportance="low" ContinueOnError="WarnAndContinue">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitBranch" />
|
|
<Output TaskParameter="ExitCode" PropertyName="GitBranchExitCode" />
|
|
</Exec>
|
|
</Target>
|
|
|
|
<Target Name="GetGitTag" AfterTargets="GetGitBranch"
|
|
Condition="$(GitBranch) != '' AND !Exists('$(SolutionDir)changes.log')">
|
|
<Exec ConsoleToMSBuild="True" IgnoreExitCode="true"
|
|
Condition="$(GitBranch) == 'master' OR $(GitBranch) == 'main'"
|
|
Command='git describe --tags --abbrev=0 --exclude "v*-*"' StandardOutputImportance="low"
|
|
StandardErrorImportance="low" ContinueOnError="WarnAndContinue">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitTag" />
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitVerTag" />
|
|
<Output TaskParameter="ExitCode" PropertyName="GitTagExitCode" />
|
|
</Exec>
|
|
<Exec ConsoleToMSBuild="True" IgnoreExitCode="true"
|
|
Condition="$(GitBranch) != 'master' AND $(GitBranch) != 'main'"
|
|
Command="git describe --tags --abbrev=0" StandardOutputImportance="low"
|
|
StandardErrorImportance="low" ContinueOnError="WarnAndContinue">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitTag" />
|
|
<Output TaskParameter="ExitCode" PropertyName="GitTagExitCode" />
|
|
</Exec>
|
|
</Target>
|
|
|
|
<Target Name="CreateGitLog" AfterTargets="GetGitTag"
|
|
Condition="!Exists('$(MSBuildThisFileDirectory)\changes.log')">
|
|
<PropertyGroup>
|
|
<GitBaseCommand>git log --no-merges</GitBaseCommand>
|
|
<GitCommand Condition="$([MSBuild]::IsOSPlatform('Windows')) == 'true'">$(GitBaseCommand)
|
|
--pretty=format:"- %25%25s"</GitCommand>
|
|
<GitCommand Condition="$([MSBuild]::IsOSPlatform('Windows')) != 'true'">$(GitBaseCommand)
|
|
--pretty=format:"- %25s"</GitCommand>
|
|
</PropertyGroup>
|
|
|
|
<Exec Condition="$(GitTagExitCode) == 0"
|
|
Command='$(GitCommand) $(GitTag)..HEAD > "$(MSBuildThisFileDirectory)changes.log"'
|
|
StandardOutputImportance="low" StandardErrorImportance="low" ContinueOnError="WarnAndContinue" />
|
|
<Exec Condition="$(GitTagExitCode) != 0"
|
|
Command="$(GitCommand) > "$(MSBuildThisFileDirectory)changes.log""
|
|
StandardOutputImportance="low" StandardErrorImportance="low" ContinueOnError="WarnAndContinue" />
|
|
<Exec Condition="$([MSBuild]::IsOSPlatform('Windows')) == 'true'"
|
|
Command="type $(MSBuildThisFileDirectory)changes.log | findstr -v 💚 | findstr -v : | findstr -v 🔧 > $(MSBuildThisFileDirectory)changes.log"
|
|
StandardOutputImportance="low" StandardErrorImportance="low" ContinueOnError="WarnAndContinue" />
|
|
<Exec Condition="$([MSBuild]::IsOSPlatform('Windows')) != 'true'"
|
|
Command="sed -i '/^- 💚/ d' $(MSBuildThisFileDirectory)changes.log && sed -i '/^- 🔧/ d' $(MSBuildThisFileDirectory)changes.log && sed -i '/:/d' $(MSBuildThisFileDirectory)changes.log"
|
|
StandardOutputImportance="low" StandardErrorImportance="low" ContinueOnError="WarnAndContinue" />
|
|
</Target>
|
|
</Project>
|