Skip to content

Commit 7327de5

Browse files
committed
Use and preserve server.json wherever it is found
1 parent 36498c7 commit 7327de5

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -317,25 +317,24 @@
317317
BeforeTargets="GenerateNuspec;_GetPackageFiles"
318318
DependsOnTargets="GetBuildVersion">
319319
<ItemGroup>
320-
<_NBGV_OriginalServerJson Include="$(MSBuildProjectDirectory)\server.json" Condition="Exists('$(MSBuildProjectDirectory)\server.json')" />
320+
<_NBGV_OriginalServerJson Include="@(None)" Condition="'%(None.FileName)%(None.Extension)'=='server.json'" />
321321
</ItemGroup>
322-
322+
323323
<PropertyGroup>
324-
<_NBGV_StampedServerJsonPath>$(IntermediateOutputPath)server.json</_NBGV_StampedServerJsonPath>
324+
<_NBGV_StampedServerJsonPath>$(IntermediateOutputPath)\nb.gv\server.json</_NBGV_StampedServerJsonPath>
325325
</PropertyGroup>
326-
326+
327327
<!-- Transform server.json with versioned content -->
328328
<Nerdbank.GitVersioning.Tasks.StampMcpServerJson
329329
Condition="'@(_NBGV_OriginalServerJson)' != ''"
330330
SourceServerJson="%(_NBGV_OriginalServerJson.Identity)"
331331
OutputServerJson="$(_NBGV_StampedServerJsonPath)"
332332
Version="$(Version)" />
333-
333+
334334
<!-- Remove original server.json from packaging and add stamped version -->
335-
<ItemGroup Condition="'$(_NBGV_StampedServerJsonPath)' != ''">
336-
<Content Remove="server.json" />
337-
<None Remove="server.json" />
338-
<Content Include="$(_NBGV_StampedServerJsonPath)" PackagePath="server.json" Pack="true" />
335+
<ItemGroup>
336+
<None Remove="@(_NBGV_OriginalServerJson)" />
337+
<None Include="@(_NBGV_OriginalServerJson->'$(_NBGV_StampedServerJsonPath)')" />
339338
</ItemGroup>
340339
</Target>
341340

test/Nerdbank.GitVersioning.Tests/BuildIntegrationManagedTests.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,27 @@ public async Task McpServerJson_VersionStamping()
5050
}
5151
""";
5252

53-
string serverJsonPath = Path.Combine(this.projectDirectory, "server.json");
53+
string serverJsonPath = Path.Combine(this.projectDirectory, ".mcp", "server.json");
54+
Directory.CreateDirectory(Path.Combine(this.projectDirectory, ".mcp"));
5455
File.WriteAllText(serverJsonPath, serverJsonContent);
5556

5657
// Set PackageType to McpServer
5758
ProjectPropertyGroupElement propertyGroup = this.testProject.CreatePropertyGroupElement();
5859
this.testProject.AppendChild(propertyGroup);
5960
propertyGroup.AddProperty("PackageType", "McpServer");
6061

62+
this.testProject.AddItem("None", @".mcp\server.json", new Dictionary<string, string> { ["Pack"] = "true", ["PackagePath"] = "/.mcp/" });
63+
6164
this.WriteVersionFile();
6265
BuildResults result = await this.BuildAsync("NBGV_StampMcpServerJson", logVerbosity: LoggerVerbosity.Detailed);
6366

6467
// Verify the build succeeded
6568
Assert.Empty(result.LoggedEvents.OfType<BuildErrorEventArgs>());
6669

6770
// Verify the stamped server.json was created
68-
string stampedServerJsonPath = Path.Combine(this.projectDirectory, result.BuildResult.ProjectStateAfterBuild.GetPropertyValue("IntermediateOutputPath"), "server.json");
71+
string stampedServerJsonPath = result.BuildResult.ProjectStateAfterBuild.GetItems("None")
72+
.Single(pi => $"{pi.GetMetadataValue("FileName")}{pi.GetMetadataValue("Extension")}" == "server.json")
73+
.GetMetadataValue("FullPath");
6974
Assert.True(File.Exists(stampedServerJsonPath), $"Expected stamped server.json at: {stampedServerJsonPath}");
7075

7176
// Verify the version was correctly stamped

0 commit comments

Comments
 (0)