Skip to content

This package is to simplify the build automation system using Nuke.Common.

License

Notifications You must be signed in to change notification settings

ricaun-io/ricaun.Nuke

Repository files navigation

ricaun.Nuke

This package is to simplify the build automation system using Nuke.Common.

Visual Studio 2022 Nuke License MIT Publish Release

Examples

Build.cs - IPublish

using Nuke.Common;
using Nuke.Common.Execution;
using ricaun.Nuke;
using ricaun.Nuke.Components;

class Build : NukeBuild, IPublish
{
    // string IHazMainProject.MainName => "ProjectName";
    public static int Main() => Execute<Build>(x => x.From<IPublish>().Build);
}

Environment Variables

env:
    GitHubToken: ${{ secrets.GITHUB_TOKEN }}
    SignFile: ${{ secrets.SIGN_FILE }}
    SignPassword: ${{ secrets.SIGN_PASSWORD }}

Build.cs - IPublishPack

using Nuke.Common;
using Nuke.Common.Execution;
using ricaun.Nuke;
using ricaun.Nuke.Components;

class Build : NukeBuild, IPublishPack
{
    // string IHazMainProject.MainName => "ProjectName";
    public static int Main() => Execute<Build>(x => x.From<IPublishPack>().Build);
}

Environment Variables

Publish Package Github

env:
    GitHubToken: ${{ secrets.GITHUB_TOKEN }}
    SignFile: ${{ secrets.SIGN_FILE }}
    SignPassword: ${{ secrets.SIGN_PASSWORD }}

Publish Package Nuget

env:
    GitHubToken: ${{ secrets.GITHUB_TOKEN }}
    SignFile: ${{ secrets.SIGN_FILE }}
    SignPassword: ${{ secrets.SIGN_PASSWORD }}
    NugetApiUrl: ${{ secrets.NUGET_API_URL }}
    NugetApiKey: ${{ secrets.NUGET_API_KEY }}

Build.cs - ITest

ITest runs all the TestLocalProjectName tests on local build and server build.

using Nuke.Common;
using Nuke.Common.Execution;
using ricaun.Nuke;
using ricaun.Nuke.Components;

class Build : NukeBuild, IPublish, ITest
{
    // bool ITest.TestBuildStopWhenFailed => true;
    // string ITest.TestProjectName => "*.Tests";
    public static int Main() => Execute<Build>(x => x.From<IPublish>().Build);
}

Build.cs - ITestLocal

ITestLocal runs all the TestLocalProjectName tests only on local build.

using Nuke.Common;
using Nuke.Common.Execution;
using ricaun.Nuke;
using ricaun.Nuke.Components;

class Build : NukeBuild, IPublish, ITestLocal
{
    // bool ITestLocal.TestLocalBuildStopWhenFailed => true;
    // string ITestLocal.TestLocalProjectName => "*.Tests";
    public static int Main() => Execute<Build>(x => x.From<IPublish>().Build);
}

Build.cs - ITestServer

ITestServer runs all the TestServerProjectName tests only on server build.

using Nuke.Common;
using Nuke.Common.Execution;
using ricaun.Nuke;
using ricaun.Nuke.Components;

class Build : NukeBuild, IPublish, ITestServer
{
    // bool ITestServer.TestServerBuildStopWhenFailed => true;
    // string ITestServer.TestServerProjectName => "*.Tests";
    public static int Main() => Execute<Build>(x => x.From<IPublish>().Build);
}

License

This package is licensed under the MIT License.


Do you like this package? Please star this project on GitHub!


Copyright © 2021 ricaun