Skip to content

Commit bcb17be

Browse files
committed
Publication to the Nuget public source
1 parent 965b490 commit bcb17be

9 files changed

Lines changed: 69 additions & 19 deletions

File tree

.github/workflows/Publish Release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ jobs:
2525
run: ./.nuke/build.cmd PublishNuget
2626
env:
2727
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
2829
NICE3POINT_PACKAGES_API_KEY: ${{ secrets.NICE3POINT_PACKAGES_API_KEY }}

Nice3point.TUnit.Revit/Nice3point.TUnit.Revit.csproj

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<UseWpf>true</UseWpf>
5+
<OutputType>Library</OutputType>
56
<Configurations>Debug R22;Debug R23;Debug R24;Debug R25;Debug R26</Configurations>
67
<Configurations>$(Configurations);Release R22;Release R23;Release R24;Release R25;Release R26</Configurations>
78
</PropertyGroup>
@@ -21,14 +22,23 @@
2122
<PropertyGroup>
2223
<IsPackable>true</IsPackable>
2324
<IncludeSymbols>false</IncludeSymbols>
25+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2426
</PropertyGroup>
2527

2628
<ItemGroup>
2729
<PackageReference Include="Nice3point.Revit.Build.Tasks" Version="3.0.1" PrivateAssets="all"/>
28-
<PackageReference Include="Nice3point.Revit.Injector" Version="$(RevitVersion).*"/>
2930
<PackageReference Include="TUnit" Version="0.25.21"/>
3031
</ItemGroup>
3132

33+
<ItemGroup Condition="'$(PublishProfile)' == 'Private' OR '$(PublishProfile)' == ''">
34+
<PackageReference Include="Nice3point.Revit.Injector" Version="$(RevitVersion).*"/>
35+
</ItemGroup>
36+
37+
<ItemGroup Condition="'$(PublishProfile)' == 'Public'">
38+
<PackageReference Include="Nice3point.Revit.Api.RevitAPI" Version="$(RevitVersion).*"/>
39+
<PackageReference Include="Nice3point.Revit.Injector" Version="$(RevitVersion).*" PrivateAssets="all"/>
40+
</ItemGroup>
41+
3242
<ItemGroup>
3343
<None Include="..\.nuget\PackageIcon.png" PackagePath="images\" Pack="true" Visible="false"/>
3444
<None Include="..\License.md" PackagePath="" Pack="true" Visible="false"/>

Nice3point.TUnit.Revit/RevitApiTest.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44

55
namespace Nice3point.TUnit.Revit;
66

7-
/// Represents a base class for testing Revit API functionality using the test framework.
8-
/// This class sets up and tears down a Revit session required for running tests.
7+
/// <summary>
8+
/// Represents a test class for executing tests within the Revit environment.
9+
/// This class provides dependency resolution, setup and cleanup methods for initializing and terminating
10+
/// the connection to the Revit API before and after the test session.
11+
/// </summary>
912
public class RevitApiTest : RevitApplicationTest
1013
{
1114
static RevitApiTest()

Nice3point.TUnit.Revit/RevitApplicationTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
namespace Nice3point.TUnit.Revit;
55

66
/// <summary>
7-
/// Represents a base class for testing Revit-based applications inside the test framework.
8-
/// This class provides methods to initialize and terminate the connection with the Revit application.
7+
/// Represents an abstract base class for tests that require interaction with the Revit application environment.
8+
/// Provides methods to initialize and terminate the connection to the Revit application.
99
/// </summary>
10-
public class RevitApplicationTest
10+
public abstract class RevitApplicationTest
1111
{
1212
private static Injector? _injector;
1313

Nuget.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<packageSources>
44
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
5-
<add key="nice3point" value="https://nuget.pkg.github.com/Nice3point/index.json" protocolVersion="3" />
5+
<add key="nice3point" value="https://nuget.pkg.github.com/Nice3point/index.json"/>
66
</packageSources>
77
<packageSourceCredentials>
88
<nice3point>

build/Build.Configuration.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
sealed partial class Build
22
{
33
readonly AbsolutePath ArtifactsDirectory = RootDirectory / "output";
4+
AbsolutePath PrivateArtifactsDirectory => ArtifactsDirectory / "private";
5+
AbsolutePath PublicArtifactsDirectory => ArtifactsDirectory / "public";
46

57
[Parameter] string ReleaseVersion;
68

build/Build.Pack.cs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,12 @@ partial class Build
1212
try
1313
{
1414
var packConfigurations = GlobBuildConfigurations()
15-
.Where(configuration => configuration.Contains(" R", StringComparison.OrdinalIgnoreCase));
15+
.Where(configuration => configuration.StartsWith("Release", StringComparison.OrdinalIgnoreCase));
1616

1717
foreach (var configuration in packConfigurations)
1818
{
19-
DotNetPack(settings => settings
20-
.SetConfiguration(configuration)
21-
.SetVersion(GetPackVersion(configuration))
22-
.SetOutputDirectory(ArtifactsDirectory)
23-
.SetVerbosity(DotNetVerbosity.minimal));
19+
PackPrivatePackage(configuration);
20+
PackPublicPackage(configuration);
2421
}
2522
}
2623
finally
@@ -29,6 +26,27 @@ partial class Build
2926
}
3027
});
3128

29+
void PackPrivatePackage(string configuration)
30+
{
31+
DotNetPack(settings => settings
32+
.SetConfiguration(configuration)
33+
.SetVersion(GetPackVersion(configuration))
34+
.SetOutputDirectory(PrivateArtifactsDirectory)
35+
.SetVerbosity(DotNetVerbosity.minimal)
36+
.SetProperty("PublishProfile", "Private"));
37+
}
38+
39+
void PackPublicPackage(string configuration)
40+
{
41+
DotNetPack(settings => settings
42+
.SetConfiguration(configuration)
43+
.SetVersion(GetPackVersion(configuration))
44+
.SetOutputDirectory(PublicArtifactsDirectory)
45+
.SetVerbosity(DotNetVerbosity.minimal)
46+
.SetProperty("PublishProfile", "Public")
47+
.SetProperty("ProduceOnlyReferenceAssembly", true));
48+
}
49+
3250
string GetPackVersion(string configuration)
3351
{
3452
if (PackageVersionsMap.TryGetValue(configuration, out var version)) return version;

build/Build.Publish.Nuget.cs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,35 @@
33

44
partial class Build
55
{
6-
const string NugetSource = "https://nuget.pkg.github.com/Nice3point/index.json";
7-
[Parameter] [Secret] string NugetApiKey = EnvironmentInfo.GetVariable("NICE3POINT_PACKAGES_API_KEY");
6+
const string NugetPublicSource = "https://api.nuget.org/v3/index.json";
7+
const string NugetPrivateSource = "https://nuget.pkg.github.com/Nice3point/index.json";
8+
9+
[Parameter] [Secret] string NugetPublicApiKey = EnvironmentInfo.GetVariable("NUGET_API_KEY");
10+
[Parameter] [Secret] string NugetPrivateApiKey = EnvironmentInfo.GetVariable("NICE3POINT_PACKAGES_API_KEY");
811

912
Target PublishNuget => _ => _
1013
.DependsOn(Pack)
11-
.Requires(() => NugetApiKey)
14+
.Requires(() => NugetPublicApiKey)
15+
.Requires(() => NugetPrivateApiKey)
1216
.Executes(() =>
1317
{
14-
foreach (var package in ArtifactsDirectory.GlobFiles("*.nupkg"))
18+
foreach (var package in PrivateArtifactsDirectory.GlobFiles("*.nupkg"))
1519
{
1620
DotNetNuGetPush(settings => settings
1721
.SetTargetPath(package)
18-
.SetSource(NugetSource)
19-
.SetApiKey(NugetApiKey));
22+
.SetSource(NugetPrivateSource)
23+
.SetApiKey(NugetPrivateApiKey));
24+
}
25+
26+
foreach (var package in PublicArtifactsDirectory.GlobFiles("*.nupkg"))
27+
{
28+
var fileInfo = package.ToFileInfo();
29+
Assert.False(fileInfo.Length > 40 * 1024, "file length > 40 kb, check assembly trimming. Public distribution of source code should be avoided");
30+
31+
DotNetNuGetPush(settings => settings
32+
.SetTargetPath(package)
33+
.SetSource(NugetPublicSource)
34+
.SetApiKey(NugetPublicApiKey));
2035
}
2136
});
2237
}

build/Build.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
<ItemGroup>
1717
<PackageReference Include="Nuke.Common" Version="9.0.4"/>
18+
<PackageDownload Include="JetBrains.Refasmer.CliTool" Version="[2.0.2]"/>
1819
</ItemGroup>
1920

2021
<ItemGroup>

0 commit comments

Comments
 (0)