@halospv3/hce.shared-config
Version:
Automate commit message quality, changelogs, and CI/CD releases. Its `main` entry point is a Semantic Release config. Functions and classes are exposed for customization. An ESLint config, a Commitlint config, and addl. resources for .NET projects are als
65 lines • 3.31 kB
text/typescript
import { MSBuildProject } from "./MSBuildProject.mjs";
import { NugetRegistryInfo } from "./NugetRegistryInfo.mjs";
import { Type } from "arktype";
import { Default } from "arktype/internal/attributes.ts";
//#region src/dotnet/helpers.d.ts
/**
* Build a prepareCmd string from .NET projects.\
* This will include a `dotnet publish` for each project's RID and TFM permutation,\
* `dotnet pack` for each project with output paths separated by NuGet Source and PackageId,\
* and `dotnet nuget sign` for each nupkg output directory.
* @todo parse Solution files to publish all projects with default Publish parameters (as evaluated by MSBuild).
* @param projectsToPublish An array of relative or full file paths of `.csproj`
* projects -OR- an array of {@link MSBuildProject} objects.
* The project paths will be passed to `dotnet publish` commands.
* @param projectsToPackAndPush
* Relative and/or full file paths of projects to pass to `dotnet pack`. If
* string[], only the default NuGet Source will be used. If GitHub, GitLab,
* etc. are also desired, pass {@link NugetRegistryInfo}[]
* @param dotnetNugetSignOpts A {@link DotnetNugetSignOptions} object. The value
* of the `--output` argument will be set to {@link ourDefaultPubDir} if `undefined`.
* @returns A single string of CLI commands joined by ' && '
*/
declare function configurePrepareCmd(projectsToPublish: string[] | MSBuildProject[], projectsToPackAndPush?: string[] | NugetRegistryInfo[], dotnetNugetSignOpts?: typeof DotnetNugetSignOptions.inferIn): Promise<string>;
/**
* Prepare the CLI command to push NuGet packages. This should added to the `publishCmd` option of `@semantic-release/exec`
*
* Ensure your verifyConditionsCmd is set to prevent releases failing due to bad tokens or packages!
* See {@link NugetRegistryInfo#PackDummyPackage}, {@link NugetRegistryInfo#GetPushDummyCommand}
* @param registryInfos an array of {@link NugetRegistryInfo} (or derived classes) instances.
* @param packageOutputPath Default: `${cwd()}/publish`.\
* The directory at which dotnet outputs the given projects' packages. Passed to
* `dotnet pack` via the `--output` argument.
* @returns a string of `dotnet pack` and `dotnet push` commands, joined by ' && '.
*/
declare function configureDotnetNugetPush(registryInfos: NugetRegistryInfo[], packageOutputPath?: string): string;
declare const DotnetNugetSignOptions: Type<{
timestamper: Default<string, "https://rfc3161.ai.moda/">;
certificatePassword?: string | undefined;
hashAlgorithm?: string | undefined;
output?: string | undefined;
overwrite?: true | undefined;
timestampHashAlgorithm?: string | undefined;
verbosity?: "q" | "quiet" | "m" | "minimal" | "n" | "normal" | "d" | "detailed" | "diag" | "diagnostic";
} & ({
certificatePath: string;
certificateSubjectName: string;
} | {
certificatePath: string;
certificateFingerprint: string;
} | {
certificateStoreName: string;
certificateSubjectName: string;
} | {
certificateStoreName: string;
certificateFingerprint: string;
} | {
certificateStoreLocation: string;
certificateSubjectName: string;
} | {
certificateStoreLocation: string;
certificateFingerprint: string;
})>;
//#endregion
export { configureDotnetNugetPush, configurePrepareCmd };
//# sourceMappingURL=helpers.d.mts.map