added GRM open action

This commit is contained in:
Artur Stolear
2020-02-09 09:13:26 +02:00
committed by Artur
parent 3d22c1208a
commit b7fcc8e701
12 changed files with 18702 additions and 3 deletions

View File

@@ -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);
}
}

View File

@@ -0,0 +1,4 @@
import "reflect-metadata";
import { open } from "./main";
open();

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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)];