This package is to simplify the build automation system using Nuke.Common.
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);
}
env:
GitHubToken: ${{ secrets.GITHUB_TOKEN }}
SignFile: ${{ secrets.SIGN_FILE }}
SignPassword: ${{ secrets.SIGN_PASSWORD }}
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);
}
env:
GitHubToken: ${{ secrets.GITHUB_TOKEN }}
env:
GitHubToken: ${{ secrets.GITHUB_TOKEN }}
SignFile: ${{ secrets.SIGN_FILE }}
SignPassword: ${{ secrets.SIGN_PASSWORD }}
SignFile
could be a file/url/Base64
to the certificate file.
SignPassword
is the password to the certificate file.
To simplify the configuration to sign with Azure Key Vault
using the same environment variables are used SignFile
and SignPassword
.
env:
GitHubToken: ${{ secrets.GITHUB_TOKEN }}
SignFile: ${{ secrets.SIGN_FILE_AZURE }}
SignPassword: ${{ secrets.SIGN_PASSWORD_AZURE }}
The SIGN_FILE_AZURE
is a json
with the base configuration of the certificated in the Azure Key Vault
:
{
"AzureKeyVaultCertificate": "AzureKeyVaultCertificate",
"AzureKeyVaultUrl": "AzureKeyVaultUrl",
"AzureKeyVaultClientId": "AzureKeyVaultClientId",
"AzureKeyVaultTenantId": "AzureKeyVaultTenantId",
"TimestampUrl" : "http://timestamp.digicert.com"
"TimestampDigest" : "sha256"
}
The TimestampUrl
and TimestampDigest
are optional.
The SIGN_PASSWORD_AZURE
is the AzureKeyVaultClientSecret
of the Azure Key Vault
certificate.
env:
GitHubToken: ${{ secrets.GITHUB_TOKEN }}
SignFile: ${{ secrets.SIGN_FILE }}
SignPassword: ${{ secrets.SIGN_PASSWORD }}
NugetApiUrl: ${{ secrets.NUGET_API_URL }}
NugetApiKey: ${{ secrets.NUGET_API_KEY }}
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);
}
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);
}
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);
}
This package is licensed under the MIT License.
Do you like this package? Please star this project on GitHub!
Copyright © 2021 ricaun