Run using external secret provider to speed up input

pull/353/head
Frostebite 2022-03-15 00:27:00 +00:00
parent 99f9a7179b
commit 14c9af3592
6 changed files with 48 additions and 34 deletions

38
dist/index.js vendored
View File

@ -755,10 +755,12 @@ exports.CloudRunnerSystem = void 0;
const child_process_1 = __nccwpck_require__(32081); const child_process_1 = __nccwpck_require__(32081);
const remote_client_logger_1 = __nccwpck_require__(28082); const remote_client_logger_1 = __nccwpck_require__(28082);
class CloudRunnerSystem { class CloudRunnerSystem {
static Run(command, suppressError = false) { static Run(command, suppressError = false, suppressLogs = false) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
for (const element of command.split(`\n`)) { for (const element of command.split(`\n`)) {
remote_client_logger_1.RemoteClientLogger.log(element); if (!suppressLogs) {
remote_client_logger_1.RemoteClientLogger.log(element);
}
} }
return yield new Promise((promise) => { return yield new Promise((promise) => {
let output = ''; let output = '';
@ -768,7 +770,9 @@ class CloudRunnerSystem {
} }
if (stderr) { if (stderr) {
const diagnosticOutput = `${stderr.toString()}`; const diagnosticOutput = `${stderr.toString()}`;
remote_client_logger_1.RemoteClientLogger.logCliDiagnostic(diagnosticOutput); if (!suppressLogs) {
remote_client_logger_1.RemoteClientLogger.logCliDiagnostic(diagnosticOutput);
}
output += diagnosticOutput; output += diagnosticOutput;
return; return;
} }
@ -782,7 +786,9 @@ class CloudRunnerSystem {
} }
const outputLines = output.split(`\n`); const outputLines = output.split(`\n`);
for (const element of outputLines) { for (const element of outputLines) {
remote_client_logger_1.RemoteClientLogger.log(element); if (!suppressLogs) {
remote_client_logger_1.RemoteClientLogger.log(element);
}
} }
promise(output); promise(output);
}); });
@ -3848,7 +3854,7 @@ const cloud_runner_system_1 = __nccwpck_require__(66879);
class GenericInputReader { class GenericInputReader {
static Run(command) { static Run(command) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
return yield cloud_runner_system_1.CloudRunnerSystem.Run(command); return yield cloud_runner_system_1.CloudRunnerSystem.Run(command, false, true);
}); });
} }
} }
@ -4012,6 +4018,13 @@ const generic_input_reader_1 = __nccwpck_require__(2263);
const git_repo_1 = __nccwpck_require__(24271); const git_repo_1 = __nccwpck_require__(24271);
const github_cli_1 = __nccwpck_require__(44990); const github_cli_1 = __nccwpck_require__(44990);
const platform_1 = __importDefault(__nccwpck_require__(9707)); const platform_1 = __importDefault(__nccwpck_require__(9707));
const formatFunction = (value, arguments_) => {
let formatted = value;
for (const argument in arguments_) {
formatted = formatted.replace(`{${arguments_[argument].key}}`, arguments_[argument].value);
}
return formatted;
};
const core = __nccwpck_require__(42186); const core = __nccwpck_require__(42186);
/** /**
* Input variables specified in workflows using "with" prop. * Input variables specified in workflows using "with" prop.
@ -4026,7 +4039,7 @@ class Input {
static shouldUseOverride(query) { static shouldUseOverride(query) {
if (Input.readInputOverrideCommand() !== '') { if (Input.readInputOverrideCommand() !== '') {
if (Input.readInputFromOverrideList() !== '') { if (Input.readInputFromOverrideList() !== '') {
return Input.readInputFromOverrideList().split(', ').includes(query) ? true : false; return Input.readInputFromOverrideList().split(',').includes(query) ? true : false;
} }
else { else {
return true; return true;
@ -4038,23 +4051,16 @@ class Input {
if (!this.shouldUseOverride(query)) { if (!this.shouldUseOverride(query)) {
throw new Error(`Should not be trying to run override query on ${query}`); throw new Error(`Should not be trying to run override query on ${query}`);
} }
// eslint-disable-next-line func-style return yield generic_input_reader_1.GenericInputReader.Run(formatFunction(Input.readInputOverrideCommand(), [{ key: 0, value: query }]));
const formatFunction = function (format) {
const arguments_ = Array.prototype.slice.call([query], 1);
return format.replace(/{(\d+)}/g, function (match, number) {
return typeof arguments_[number] != 'undefined' ? arguments_[number] : match;
});
};
return yield generic_input_reader_1.GenericInputReader.Run(formatFunction(Input.readInputOverrideCommand()));
}); });
} }
static PopulateQueryOverrideInput() { static PopulateQueryOverrideInput() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const queries = Input.readInputFromOverrideList().split(', '); const queries = Input.readInputFromOverrideList().split(',');
Input.queryOverrides = new Array(); Input.queryOverrides = new Array();
for (const element of queries) { for (const element of queries) {
if (Input.shouldUseOverride(element)) { if (Input.shouldUseOverride(element)) {
Input.queryOverrides.Push(yield Input.queryOverride(element)); Input.queryOverrides.push(yield Input.queryOverride(element));
} }
} }
}); });

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@
"format": "prettier --write \"src/**/*.{js,ts}\"", "format": "prettier --write \"src/**/*.{js,ts}\"",
"prepare": "husky install", "prepare": "husky install",
"cli": "yarn ts-node src/index.ts -m cli", "cli": "yarn ts-node src/index.ts -m cli",
"gcp-secrets-cli": "cross-env readInputOverrideCommand=\"gcloud secrets versions access 0 --secret=\"{0}\"\" yarn ts-node src/index.ts -m cli", "gcp-secrets-cli": "cross-env readInputOverrideCommand=\"gcloud secrets versions access 1 --secret=\"{0}\"\" yarn ts-node src/index.ts -m cli --readInputFromOverrideList UNITY_EMAIL,UNITY_SERIAL,UNITY_PASSWORD",
"cli-aws": "cross-env cloudRunnerCluster=aws yarn run test-cli", "cli-aws": "cross-env cloudRunnerCluster=aws yarn run test-cli",
"cli-k8s": "cross-env cloudRunnerCluster=k8s yarn run test-cli", "cli-k8s": "cross-env cloudRunnerCluster=k8s yarn run test-cli",
"test-cli": "cross-env cloudRunnerTests=true yarn ts-node src/index.ts -m cli --projectPath test-project", "test-cli": "cross-env cloudRunnerTests=true yarn ts-node src/index.ts -m cli --projectPath test-project",

View File

@ -2,9 +2,11 @@ import { exec } from 'child_process';
import { RemoteClientLogger } from './remote-client-logger'; import { RemoteClientLogger } from './remote-client-logger';
export class CloudRunnerSystem { export class CloudRunnerSystem {
public static async Run(command: string, suppressError = false) { public static async Run(command: string, suppressError = false, suppressLogs = false) {
for (const element of command.split(`\n`)) { for (const element of command.split(`\n`)) {
RemoteClientLogger.log(element); if (!suppressLogs) {
RemoteClientLogger.log(element);
}
} }
return await new Promise<string>((promise) => { return await new Promise<string>((promise) => {
let output = ''; let output = '';
@ -14,7 +16,9 @@ export class CloudRunnerSystem {
} }
if (stderr) { if (stderr) {
const diagnosticOutput = `${stderr.toString()}`; const diagnosticOutput = `${stderr.toString()}`;
RemoteClientLogger.logCliDiagnostic(diagnosticOutput); if (!suppressLogs) {
RemoteClientLogger.logCliDiagnostic(diagnosticOutput);
}
output += diagnosticOutput; output += diagnosticOutput;
return; return;
} }
@ -28,7 +32,9 @@ export class CloudRunnerSystem {
} }
const outputLines = output.split(`\n`); const outputLines = output.split(`\n`);
for (const element of outputLines) { for (const element of outputLines) {
RemoteClientLogger.log(element); if (!suppressLogs) {
RemoteClientLogger.log(element);
}
} }
promise(output); promise(output);
}); });

View File

@ -2,6 +2,6 @@ import { CloudRunnerSystem } from '../cli/remote-client/remote-client-services/c
export class GenericInputReader { export class GenericInputReader {
public static async Run(command) { public static async Run(command) {
return await CloudRunnerSystem.Run(command); return await CloudRunnerSystem.Run(command, false, true);
} }
} }

View File

@ -5,6 +5,14 @@ import { GitRepoReader } from './input-readers/git-repo';
import { GithubCliReader } from './input-readers/github-cli'; import { GithubCliReader } from './input-readers/github-cli';
import Platform from './platform'; import Platform from './platform';
const formatFunction = (value, arguments_) => {
let formatted = value;
for (const argument in arguments_) {
formatted = formatted.replace(`{${arguments_[argument].key}}`, arguments_[argument].value);
}
return formatted;
};
const core = require('@actions/core'); const core = require('@actions/core');
/** /**
@ -24,7 +32,7 @@ class Input {
private static shouldUseOverride(query) { private static shouldUseOverride(query) {
if (Input.readInputOverrideCommand() !== '') { if (Input.readInputOverrideCommand() !== '') {
if (Input.readInputFromOverrideList() !== '') { if (Input.readInputFromOverrideList() !== '') {
return Input.readInputFromOverrideList().split(', ').includes(query) ? true : false; return Input.readInputFromOverrideList().split(',').includes(query) ? true : false;
} else { } else {
return true; return true;
} }
@ -35,22 +43,16 @@ class Input {
if (!this.shouldUseOverride(query)) { if (!this.shouldUseOverride(query)) {
throw new Error(`Should not be trying to run override query on ${query}`); throw new Error(`Should not be trying to run override query on ${query}`);
} }
// eslint-disable-next-line func-style
const formatFunction = function (format: string) { return await GenericInputReader.Run(formatFunction(Input.readInputOverrideCommand(), [{ key: 0, value: query }]));
const arguments_ = Array.prototype.slice.call([query], 1);
return format.replace(/{(\d+)}/g, function (match, number) {
return typeof arguments_[number] != 'undefined' ? arguments_[number] : match;
});
};
return await GenericInputReader.Run(formatFunction(Input.readInputOverrideCommand()));
} }
public static async PopulateQueryOverrideInput() { public static async PopulateQueryOverrideInput() {
const queries = Input.readInputFromOverrideList().split(', '); const queries = Input.readInputFromOverrideList().split(',');
Input.queryOverrides = new Array(); Input.queryOverrides = new Array();
for (const element of queries) { for (const element of queries) {
if (Input.shouldUseOverride(element)) { if (Input.shouldUseOverride(element)) {
Input.queryOverrides.Push(await Input.queryOverride(element)); Input.queryOverrides.push(await Input.queryOverride(element));
} }
} }
} }