added GRM open action
This commit is contained in:
@@ -68,4 +68,19 @@ export async function close() {
|
||||
} catch (error) {
|
||||
buildAgent.setFailed(error.message, true);
|
||||
}
|
||||
}
|
||||
|
||||
export async function open() {
|
||||
try {
|
||||
|
||||
gitReleaseManagerTool.disableTelemetry();
|
||||
|
||||
const settings = Settings.getOpenSettings(buildAgent);
|
||||
|
||||
await gitReleaseManagerTool.close(settings);
|
||||
|
||||
buildAgent.setSucceeded("GitVersionManager opened release successfully", true);
|
||||
} catch (error) {
|
||||
buildAgent.setFailed(error.message, true);
|
||||
}
|
||||
}
|
||||
4
src/tasks/gitreleasemanager/open.ts
Normal file
4
src/tasks/gitreleasemanager/open.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import "reflect-metadata";
|
||||
import { open } from "./main";
|
||||
|
||||
open();
|
||||
@@ -22,6 +22,10 @@ export enum CloseFields {
|
||||
milestone = "milestone",
|
||||
}
|
||||
|
||||
export enum OpenFields {
|
||||
milestone = "milestone",
|
||||
}
|
||||
|
||||
export interface GitReleaseManagerSettings {
|
||||
[CommonFields.repository]: string;
|
||||
[CommonFields.owner]: string;
|
||||
@@ -44,4 +48,8 @@ export interface GitReleaseManagerDiscardSettings extends GitReleaseManagerSetti
|
||||
|
||||
export interface GitReleaseManagerCloseSettings extends GitReleaseManagerSettings {
|
||||
[CloseFields.milestone]: string;
|
||||
}
|
||||
|
||||
export interface GitReleaseManagerOpenSettings extends GitReleaseManagerSettings {
|
||||
[OpenFields.milestone]: string;
|
||||
}
|
||||
@@ -2,11 +2,12 @@ import { IBuildAgent } from "../../core/models";
|
||||
import {
|
||||
GitReleaseManagerSettings,
|
||||
CommonFields, CreateFields, DiscardFields,
|
||||
CloseFields,
|
||||
CloseFields, OpenFields,
|
||||
|
||||
GitReleaseManagerCreateSettings,
|
||||
GitReleaseManagerDiscardSettings,
|
||||
GitReleaseManagerCloseSettings,
|
||||
GitReleaseManagerOpenSettings,
|
||||
} from "./models";
|
||||
|
||||
export class Settings {
|
||||
@@ -51,6 +52,16 @@ export class Settings {
|
||||
}
|
||||
}
|
||||
|
||||
public static getOpenSettings(buildAgent: IBuildAgent): GitReleaseManagerOpenSettings {
|
||||
const milestone = buildAgent.getInput(OpenFields.milestone);
|
||||
|
||||
const commonSettings = Settings.getCommonSettings(buildAgent);
|
||||
return {
|
||||
...commonSettings,
|
||||
milestone,
|
||||
}
|
||||
}
|
||||
|
||||
private static getCommonSettings(buildAgent: IBuildAgent): GitReleaseManagerSettings {
|
||||
const owner = buildAgent.getInput(CommonFields.owner, true);
|
||||
const repository = buildAgent.getInput(CommonFields.repository, true);
|
||||
|
||||
@@ -9,7 +9,8 @@ import {
|
||||
GitReleaseManagerSettings,
|
||||
GitReleaseManagerCreateSettings,
|
||||
GitReleaseManagerDiscardSettings,
|
||||
GitReleaseManagerCloseSettings
|
||||
GitReleaseManagerCloseSettings,
|
||||
GitReleaseManagerOpenSettings,
|
||||
} from "./models";
|
||||
|
||||
export interface IGitReleaseManagerTool extends IDotnetTool {
|
||||
@@ -17,6 +18,7 @@ export interface IGitReleaseManagerTool extends IDotnetTool {
|
||||
create(settings: GitReleaseManagerCreateSettings): Promise<IExecResult>;
|
||||
discard(settings: GitReleaseManagerDiscardSettings): Promise<IExecResult>;
|
||||
close(settings: GitReleaseManagerCloseSettings): Promise<IExecResult>;
|
||||
open(settings: GitReleaseManagerOpenSettings): Promise<IExecResult>;
|
||||
}
|
||||
|
||||
@injectable()
|
||||
@@ -51,6 +53,12 @@ export class GitReleaseManagerTool extends DotnetTool implements IGitReleaseMana
|
||||
return this.execute("dotnet-gitreleasemanager", args);
|
||||
}
|
||||
|
||||
public open(settings: GitReleaseManagerOpenSettings): Promise<IExecResult> {
|
||||
const args = this.getCloseArguments(settings);
|
||||
|
||||
return this.execute("dotnet-gitreleasemanager", args);
|
||||
}
|
||||
|
||||
getCommonArguments(settings: GitReleaseManagerSettings): string[] {
|
||||
const args: string[] = [];
|
||||
|
||||
@@ -87,6 +95,19 @@ export class GitReleaseManagerTool extends DotnetTool implements IGitReleaseMana
|
||||
return args;
|
||||
}
|
||||
|
||||
getOpenArguments(settings: GitReleaseManagerOpenSettings): string[] {
|
||||
const args: string[] = ['open', ...this.getCommonArguments(settings)];
|
||||
|
||||
if (settings.milestone) {
|
||||
args.push("--milestone", settings.milestone);
|
||||
}
|
||||
settings.targetDirectory = this.getRepoDir(settings.targetDirectory);
|
||||
|
||||
args.push("--targetDirectory", settings.targetDirectory);
|
||||
|
||||
return args;
|
||||
}
|
||||
|
||||
getCreateArguments(settings: GitReleaseManagerCreateSettings): string[] {
|
||||
const args: string[] = ['create', ...this.getCommonArguments(settings)];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user