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>
 |