Skip to content

Commit b9854f2

Browse files
committed
Adds support for run once commands
Self-hosting of the tool now checks if it is already built Integrations only need to be triggered once and while the state isn't saved per call to `dotnet`, this prevents it re-triggering for multiple projects in the solution.
1 parent a76acb2 commit b9854f2

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

src/TurnerSoftware.BuildVersioning.Tool/TurnerSoftware.BuildVersioning.Tool.csproj

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
</PropertyGroup>
99

1010
<PropertyGroup>
11-
<SelfHostedBuildVersioning Condition="'$(DesignTimeBuild)' != 'true' AND '$(SkipBuildVersioning)' != 'true'">true</SelfHostedBuildVersioning>
12-
<BuildVersioningToolPath>../../TurnerSoftware.BuildVersioning.Tool/bin/$(Configuration)/$(TargetFramework)/TurnerSoftware.BuildVersioning.Tool.dll</BuildVersioningToolPath>
11+
<BuildVersioningToolPath>bin/$(Configuration)/$(TargetFramework)/TurnerSoftware.BuildVersioning.Tool.dll</BuildVersioningToolPath>
12+
<SelfHostedBuildVersioning Condition="$(DesignTimeBuild) != 'true' AND $(SkipBuildVersioning) != 'true' AND !Exists($(BuildVersioningToolPath))">true</SelfHostedBuildVersioning>
13+
<BuildVersioningToolPath>../../TurnerSoftware.BuildVersioning.Tool/$(BuildVersioningToolPath)</BuildVersioningToolPath>
1314
</PropertyGroup>
1415

1516
<ItemGroup>
@@ -18,9 +19,6 @@
1819

1920
<!-- Self-hosting Support -->
2021
<Import Project="../TurnerSoftware.BuildVersioning/build/TurnerSoftware.BuildVersioning.targets" Condition="$(SelfHostedBuildVersioning) == 'true'" />
21-
<PropertyGroup Condition="$(SelfHostedBuildVersioning) == 'true'">
22-
<BuildVersioningToolPath>../../TurnerSoftware.BuildVersioning.Tool/bin/$(Configuration)/$(TargetFramework)/TurnerSoftware.BuildVersioning.Tool.dll</BuildVersioningToolPath>
23-
</PropertyGroup>
2422
<Target Name="_SelfHostedBuildVersioning" BeforeTargets="BeforeBuild" Condition="$(SelfHostedBuildVersioning) == 'true'">
2523
<Message Importance="high" Text="BuildVersioning-SelfHosting: Establishing a baseline build to provide versioning support" />
2624
<Exec Command="dotnet build TurnerSoftware.BuildVersioning.Tool.csproj -c $(Configuration) -v quiet --nologo /p:SkipBuildVersioning=true" StandardOutputImportance="low"></Exec>

src/TurnerSoftware.BuildVersioning/build/TurnerSoftware.BuildVersioning.Integrations.targets

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
<BuildPreReleaseFormat Condition="$(GITHUB_REF.Split('/')[1]) == 'pull'">pr.$(GITHUB_REF.Split('/')[2])</BuildPreReleaseFormat>
1111
<BuildMetadataFormat>{CommitHash}-github.$(GITHUB_RUN_ID)</BuildMetadataFormat>
1212
</PropertyGroup>
13-
<Target Name="_BuildVersioningWithGitHub" BeforeTargets="BeforeBuild" Condition="$(BuildVersioningWithGitHub) == 'true' AND $(GITHUB_RUN_ID) != ''">
13+
<Target Name="_BuildVersioningWithGitHub" BeforeTargets="BeforeBuild" Condition="$(BuildVersioningWithGitHub) == 'true' AND $(GITHUB_RUN_ID) != '' AND !$(_BuildVersioningRunOne.Contains('github'))">
14+
<PropertyGroup>
15+
<_BuildVersioningRunOnce>$(_BuildVersioningRunOnce)github;</_BuildVersioningRunOnce>
16+
</PropertyGroup>
1417
<Message Importance="$(BuildVersioningLogLevel)" Text="BuildVersioning-GitHubIntegration: Fetching tags for versioning as they aren't available by default in GitHub Actions" />
1518
<Exec Command="git fetch --prune --unshallow --tags --quiet" IgnoreExitCode="true" StandardErrorImportance="low" StandardOutputImportance="low" />
1619
</Target>
@@ -19,7 +22,10 @@
1922
<BuildPreReleaseFormat Condition="$(APPVEYOR_PULL_REQUEST_NUMBER) != ''">pr.$(APPVEYOR_PULL_REQUEST_NUMBER)</BuildPreReleaseFormat>
2023
<BuildMetadataFormat>{CommitHash}-appveyor.$(APPVEYOR_BUILD_ID)</BuildMetadataFormat>
2124
</PropertyGroup>
22-
<Target Name="_BuildVersioningWithAppVeyor" AfterTargets="BuildVersioning" Condition="$(BuildVersioningWithAppVeyor) == 'true' AND $(APPVEYOR) != ''">
25+
<Target Name="_BuildVersioningWithAppVeyor" AfterTargets="BuildVersioning" Condition="$(BuildVersioningWithAppVeyor) == 'true' AND $(APPVEYOR) != '' AND !$(_BuildVersioningRunOne.Contains('appveyor'))">
26+
<PropertyGroup>
27+
<_BuildVersioningRunOnce>$(_BuildVersioningRunOnce)appveyor;</_BuildVersioningRunOnce>
28+
</PropertyGroup>
2329
<Message Importance="$(BuildVersioningLogLevel)" Text="BuildVersioning-AppVeyorIntegration: Updating AppVeyor build name to $(BuildFullVersion)" />
2430
<Exec Command="powershell Update-AppveyorBuild -Version $(BuildFullVersion)" />
2531
</Target>

0 commit comments

Comments
 (0)