moved the common settings to a file

This commit is contained in:
Artur Stolear
2020-02-08 19:20:43 +02:00
parent dab6b01596
commit 274c9b2e99
26 changed files with 930 additions and 575 deletions

View File

@@ -3,7 +3,7 @@ import { injectable } from "inversify";
import * as taskLib from "azure-pipelines-task-lib/task";
import * as toolLib from "azure-pipelines-tool-lib/tool";
import { IBuildAgent, IExecResult } from "../../core/common";
import { IBuildAgent, IExecResult } from "../../core/models";
@injectable()
class BuildAgent implements IBuildAgent {

View File

@@ -10,7 +10,7 @@ import * as toolCache from "@actions/tool-cache";
import { injectable } from "inversify";
import { IBuildAgent, IExecResult } from "../../core/common";
import { IBuildAgent, IExecResult } from "../../core/models";
@injectable()
class BuildAgent implements IBuildAgent {

View File

@@ -1,6 +1,6 @@
import { injectable } from "inversify";
import { IBuildAgent, IExecResult } from "../../core/common";
import { IBuildAgent, IExecResult } from "../../core/models";
@injectable()
class BuildAgent implements IBuildAgent {

View File

@@ -4,7 +4,7 @@ import * as path from "path";
import * as http from "typed-rest-client/HttpClient";
import { inject, injectable } from "inversify";
import { TYPES, IExecResult, IBuildAgent } from "./common";
import { TYPES, IExecResult, IBuildAgent } from "./models";
import { IVersionManager } from "./versionManager";
export interface IDotnetTool {

View File

@@ -1,6 +1,6 @@
import { Container } from "inversify";
import { IVersionManager, VersionManager } from "./versionManager";
import { TYPES, IBuildAgent } from "./common";
import { TYPES, IBuildAgent } from "./models";
import { BuildAgent } from "../agent/mock/build-agent";
const container = new Container();

View File

@@ -6,11 +6,16 @@ export const TYPES = {
IVersionManager: Symbol.for("VersionManager"),
};
export const SetupOptions = {
includePrerelease: "includePrerelease",
versionSpec: "versionSpec",
export enum SetupFields {
includePrerelease = "includePrerelease",
versionSpec = "versionSpec",
};
export interface ISetupSettings {
[SetupFields.versionSpec]: string;
[SetupFields.includePrerelease]: boolean;
}
export interface IExecResult {
stdout: string;
stderr: string;

14
src/core/settings.ts Normal file
View File

@@ -0,0 +1,14 @@
import { IBuildAgent, SetupFields, ISetupSettings } from "./models";
export class Settings {
public static getSetupSettings(buildAgent: IBuildAgent): ISetupSettings {
const versionSpec = buildAgent.getInput(SetupFields.versionSpec);
const includePrerelease = buildAgent.getBooleanInput(SetupFields.includePrerelease);
return {
versionSpec,
includePrerelease
}
}
}

View File

@@ -2,7 +2,7 @@ import cmp from "semver-compare";
import * as semver from "semver";
import { injectable, inject } from "inversify";
import { IBuildAgent, TYPES } from "./common";
import { IBuildAgent, TYPES } from "./models";
export interface IVersionManager {
isExplicitVersion(versionSpec: string): boolean;

View File

@@ -1,8 +1,9 @@
import { IBuildAgent, TYPES, SetupOptions } from "../../core/common";
import { IBuildAgent, TYPES, SetupFields } from "../../core/models";
import { IGitReleaseManagerTool, GitReleaseManagerTool } from "../../tools/gitreleasemanager/gitreleasemanager-tool";
import { Settings as CommonSettings } from "../../core/settings";
import { Settings } from "../../tools/gitreleasemanager/settings";
import container from "../../core/ioc";
import { Settings } from "../../tools/gitreleasemanager/settings";
container.bind<IGitReleaseManagerTool>(TYPES.IGitReleaseManagerTool).to(GitReleaseManagerTool);
@@ -14,10 +15,9 @@ export async function setup() {
gitReleaseManagerTool.disableTelemetry();
const versionSpec = buildAgent.getInput(SetupOptions.versionSpec);
const includePrerelease = buildAgent.getBooleanInput(SetupOptions.includePrerelease);
const settings = CommonSettings.getSetupSettings(buildAgent);
await gitReleaseManagerTool.install(versionSpec, includePrerelease);
await gitReleaseManagerTool.install(settings.versionSpec, settings.includePrerelease);
buildAgent.setSucceeded("GitVersionManager installed successfully", true);
} catch (error) {

View File

@@ -1,9 +1,10 @@
import { IBuildAgent, TYPES, SetupOptions } from "../../core/common";
import { IBuildAgent, TYPES, SetupFields } from "../../core/models";
import { Settings as CommonSettings } from "../../core/settings";
import { Settings } from "../../tools/gitversion/settings";
import { IGitVersionTool, GitVersionTool } from "../../tools/gitversion/gitversion-tool";
import { GitVersionSettings, GitVersionOutput } from "../../tools/gitversion/models";
import container from "../../core/ioc";
import { Settings } from "../../tools/gitversion/settings";
container.bind<IGitVersionTool>(TYPES.IGitVersionTool).to(GitVersionTool);
@@ -15,10 +16,9 @@ export async function setup() {
gitVersionTool.disableTelemetry();
const versionSpec = buildAgent.getInput(SetupOptions.versionSpec);
const includePrerelease = buildAgent.getBooleanInput(SetupOptions.includePrerelease);
const settings = CommonSettings.getSetupSettings(buildAgent);
await gitVersionTool.install(versionSpec, includePrerelease);
await gitVersionTool.install(settings.versionSpec, settings.includePrerelease);
buildAgent.setSucceeded("GitVersion installed successfully", true);
} catch (error) {

View File

@@ -1,6 +1,6 @@
import path = require("path");
import { TYPES, IBuildAgent, IExecResult } from "../../core/common";
import { TYPES, IBuildAgent, IExecResult } from "../../core/models";
import { injectable, inject } from "inversify";
import { DotnetTool, IDotnetTool } from "../../core/dotnet-tool";
import { GitReleaseManagerCreateSettings, GitReleaseManagerSettings, CreateFields, CommonFields } from "./models";

View File

@@ -1,4 +1,4 @@
import { IBuildAgent } from "../../core/common";
import { IBuildAgent } from "../../core/models";
import { GitReleaseManagerSettings, CommonFields, CreateFields } from "./models";
export class Settings {

View File

@@ -1,6 +1,6 @@
import path = require("path");
import { injectable, inject } from "inversify";
import { IExecResult, IBuildAgent, TYPES } from "../../core/common";
import { IExecResult, IBuildAgent, TYPES } from "../../core/models";
import { DotnetTool, IDotnetTool } from "../../core/dotnet-tool";
import { GitVersionSettings, GitVersionOutput, ExecuteFields } from "./models";
import { IVersionManager } from "../../core/versionManager";

View File

@@ -1,4 +1,4 @@
import { IBuildAgent } from "../../core/common";
import { IBuildAgent } from "../../core/models";
import { GitVersionSettings, ExecuteFields } from "./models";