add publish GRM command

This commit is contained in:
Artur Stolear
2020-02-10 15:40:28 +02:00
parent fe485e5aab
commit 641823aef3
12 changed files with 734 additions and 3 deletions

View File

@@ -26,6 +26,10 @@ export enum OpenFields {
milestone = "milestone",
}
export enum PublishFields {
tagName = "tagName",
}
export interface GitReleaseManagerSettings {
[CommonFields.repository]: string;
[CommonFields.owner]: string;
@@ -52,4 +56,8 @@ export interface GitReleaseManagerCloseSettings extends GitReleaseManagerSetting
export interface GitReleaseManagerOpenSettings extends GitReleaseManagerSettings {
[OpenFields.milestone]: string;
}
export interface GitReleaseManagerPublishSettings extends GitReleaseManagerSettings {
[PublishFields.tagName]: string;
}

View File

@@ -2,12 +2,13 @@ import { IBuildAgent } from "../../core/models";
import {
GitReleaseManagerSettings,
CommonFields, CreateFields, DiscardFields,
CloseFields, OpenFields,
CloseFields, OpenFields, PublishFields,
GitReleaseManagerCreateSettings,
GitReleaseManagerDiscardSettings,
GitReleaseManagerCloseSettings,
GitReleaseManagerOpenSettings,
GitReleaseManagerPublishSettings,
} from "./models";
export class Settings {
@@ -62,6 +63,16 @@ export class Settings {
}
}
public static getPublishSettings(buildAgent: IBuildAgent): GitReleaseManagerPublishSettings {
const tagName = buildAgent.getInput(PublishFields.tagName);
const commonSettings = Settings.getCommonSettings(buildAgent);
return {
...commonSettings,
tagName,
}
}
private static getCommonSettings(buildAgent: IBuildAgent): GitReleaseManagerSettings {
const owner = buildAgent.getInput(CommonFields.owner, true);
const repository = buildAgent.getInput(CommonFields.repository, true);

View File

@@ -11,6 +11,7 @@ import {
GitReleaseManagerDiscardSettings,
GitReleaseManagerCloseSettings,
GitReleaseManagerOpenSettings,
GitReleaseManagerPublishSettings,
} from "./models";
export interface IGitReleaseManagerTool extends IDotnetTool {
@@ -19,6 +20,7 @@ export interface IGitReleaseManagerTool extends IDotnetTool {
discard(settings: GitReleaseManagerDiscardSettings): Promise<IExecResult>;
close(settings: GitReleaseManagerCloseSettings): Promise<IExecResult>;
open(settings: GitReleaseManagerOpenSettings): Promise<IExecResult>;
publish(settings: GitReleaseManagerPublishSettings): Promise<IExecResult>;
}
@injectable()
@@ -59,6 +61,12 @@ export class GitReleaseManagerTool extends DotnetTool implements IGitReleaseMana
return this.execute("dotnet-gitreleasemanager", args);
}
public publish(settings: GitReleaseManagerPublishSettings): Promise<IExecResult> {
const args = this.getPublishArguments(settings);
return this.execute("dotnet-gitreleasemanager", args);
}
getCommonArguments(settings: GitReleaseManagerSettings): string[] {
const args: string[] = [];
@@ -103,6 +111,16 @@ export class GitReleaseManagerTool extends DotnetTool implements IGitReleaseMana
return args;
}
getPublishArguments(settings: GitReleaseManagerPublishSettings): string[] {
const args: string[] = ['publish', ...this.getCommonArguments(settings)];
if (settings.tagName) {
args.push("--tagName", settings.tagName);
}
return args;
}
getCreateArguments(settings: GitReleaseManagerCreateSettings): string[] {
const args: string[] = ['create', ...this.getCommonArguments(settings)];