Skip to content

Commit

Permalink
Use shared.msbuild as single source of used package versions (#412)
Browse files Browse the repository at this point in the history
* Add cake task for transform nuspec version (#409)

* Get NHibertnatePackageVersion from Shared.msbuild; 

* Update NHibernate version in nuspecs

* Update tabs
  • Loading branch information
michalkowal authored and jrgcubano committed May 23, 2018
1 parent 05b49d4 commit 161ffa1
Show file tree
Hide file tree
Showing 10 changed files with 81 additions and 11 deletions.
42 changes: 39 additions & 3 deletions build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,20 @@ var SrcProjects = new [] { "FluentNHibernate" };
var TestProjects = new [] { "FluentNHibernate.Testing" };
var SpecProjects = new [] { "FluentNHibernate.Specs" };

var NHibernateNuspecXPath = "/package/meta:metadata/meta:dependencies/meta:dependency[@id='NHibernate']/@version";
var NHibernateNuspecXPathWithGroup = "/package/meta:metadata/meta:dependencies/meta:group/meta:dependency[@id='NHibernate']/@version";

Setup((context) =>
{
parameters.Initialize(context);
Information("FluentNHibernate");
Information($"SemVersion: {parameters.Version.SemVersion}");
Information($"NHibernateVersion: {parameters.MsBuildShared.NHibernatePackageVersion}");
Information($"IsLocalBuild: {parameters.IsLocalBuild}");
Information($"IsTagged: {parameters.IsTagged}");
Information($"IsPullRequest: {parameters.IsPullRequest}");
Information($"Target: {parameters.Target}");
Information($"Target: {parameters.Target}");
var releaseNotes = string.Join("\n",
parameters.ReleaseNotes.Notes.ToArray()).Replace("\"", "\"\"");
Expand Down Expand Up @@ -241,12 +245,22 @@ Task("Upload-AppVeyor-Artifacts")
AppVeyor.UploadArtifact(package);
}
});


Task("Update-Nuspec-Files")
.Does(() =>
{
UpdateNuspecs(
SrcProjects,
parameters.Paths.Directories.NuspecRoot.FullPath,
parameters.MsBuildShared.NHibernatePackageVersion);
});

Task("Release-Notes")
.IsDependentOn("Create-Release-Notes");

Task("Package")
.IsDependentOn("Zip-Files")
.IsDependentOn("Update-Nuspec-Files")
.IsDependentOn("Create-NuGet-Packages");

Task("AppVeyor")
Expand Down Expand Up @@ -360,4 +374,26 @@ private void PackProjects(
// .ToArray()
});
}
}
}

private void UpdateNuspecs(
IEnumerable<string> projectNames,
string nuspecDir,
string nHibernateVersion)
{
foreach(var project in projectNames)
{
// symbols
XmlPoke($"{nuspecDir}/{project}.symbols.nuspec", $"({NHibernateNuspecXPathWithGroup}|{NHibernateNuspecXPath})", nHibernateVersion,
new XmlPokeSettings {
Namespaces = new Dictionary<string, string> {{ "meta", "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" }}
});

// normal
XmlPoke($"{nuspecDir}/{project}.nuspec", $"({NHibernateNuspecXPathWithGroup}|{NHibernateNuspecXPath})", nHibernateVersion,
new XmlPokeSettings {
Namespaces = new Dictionary<string, string> {{ "meta", "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" }}
});
}
}

7 changes: 5 additions & 2 deletions build/parameters.cake
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#load "./paths.cake"
#load "./version.cake"
#load "./credentials.cake"
#load "./shared.cake"

public class BuildParameters
{
Expand All @@ -19,7 +20,8 @@ public class BuildParameters
public BuildGitHub GitHub { get; private set; }
public BuildNuGet NuGet { get; private set; }
public BuildVersion Version { get; private set; }
public BuildPaths Paths { get; private set; }
public BuildPaths Paths { get; private set; }
public MsBuildShared MsBuildShared { get; private set; }

public bool ShouldPublish =>
!IsLocalBuild &&
Expand All @@ -32,7 +34,8 @@ public class BuildParameters
{
Version = BuildVersion.Calculate(context, this);

Paths = BuildPaths.GetPaths(context, Configuration, Version.SemVersion);
Paths = BuildPaths.GetPaths(context, Configuration, Version.SemVersion);
MsBuildShared = MsBuildShared.GetShared(context, "./src/Shared.msbuild");
}

public static BuildParameters GetParameters(ICakeContext context)
Expand Down
27 changes: 27 additions & 0 deletions build/shared.cake
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
public class MsBuildShared
{
public string SharedMsBuildFile { get; private set; }
public string NHibernatePackageVersion { get; private set; }

public static MsBuildShared GetShared(
ICakeContext context,
string sharedFile)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
if (string.IsNullOrEmpty(sharedFile))
{
throw new ArgumentNullException("sharedFile");
}

var nHibernatePackageVersion = context.XmlPeek(sharedFile, "/Project/PropertyGroup/NHibernatePackageVersion");

return new MsBuildShared()
{
SharedMsBuildFile = sharedFile,
NHibernatePackageVersion = nHibernatePackageVersion
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<ItemGroup>
<PackageReference Include="EntityFramework" Version="6.2.0" />
<PackageReference Include="NHibernate" Version="5.1.1" />
<PackageReference Include="NHibernate" Version="$(NHibernatePackageVersion)" />
<PackageReference Include="System.Data.SQLite" Version="1.0.106.0" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.106.0" />
<PackageReference Include="System.Data.SQLite.EF6" Version="1.0.106.0" />
Expand Down
2 changes: 1 addition & 1 deletion src/Examples.FirstProject/Examples.FirstProject.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<ItemGroup>
<PackageReference Include="EntityFramework" Version="6.2.0" />
<PackageReference Include="NHibernate" Version="5.1.1" />
<PackageReference Include="NHibernate" Version="$(NHibernatePackageVersion)" />
<PackageReference Include="System.Data.SQLite" Version="1.0.106.0" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.106.0" />
<PackageReference Include="System.Data.SQLite.EF6" Version="1.0.106.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="NHibernate" Version="5.1.1" />
<PackageReference Include="NHibernate" Version="$(NHibernatePackageVersion)" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion src/FluentNHibernate.Specs/FluentNHibernate.Specs.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="NHibernate" Version="5.1.1" />
<PackageReference Include="NHibernate" Version="$(NHibernatePackageVersion)" />
<PackageReference Include="System.Data.SqlClient" Version="4.4.3" />
<PackageReference Include="FluentAssertions" Version="4.19.4" />
<PackageReference Include="Machine.Specifications" Version="0.12.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="FakeItEasy" Version="4.3.0" />
<PackageReference Include="FluentAssertions" Version="4.19.4" />
<PackageReference Include="NHibernate" Version="5.1.1" />
<PackageReference Include="NHibernate" Version="$(NHibernatePackageVersion)" />
<PackageReference Include="NUnit" Version="3.10.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
<PackageReference Include="System.Data.SQLite" Version="1.0.108" />
Expand Down
2 changes: 1 addition & 1 deletion src/FluentNHibernate/FluentNHibernate.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<Import Project="$(MSBuildThisFileDirectory)..\Shared.msbuild" />

<ItemGroup>
<PackageReference Include="NHibernate" Version="5.1.1" />
<PackageReference Include="NHibernate" Version="$(NHibernatePackageVersion)" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net461'">
Expand Down
4 changes: 4 additions & 0 deletions src/Shared.msbuild
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,9 @@
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
<GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
</PropertyGroup>

<PropertyGroup Label="Package Versions">
<NHibernatePackageVersion>5.1.1</NHibernatePackageVersion>
</PropertyGroup>

</Project>

0 comments on commit 161ffa1

Please sign in to comment.