GCP-secret run, cache key

pull/353/head
Frostebite 2022-03-14 23:50:59 +00:00
parent 73149fb464
commit e4490cd3ca
8 changed files with 48 additions and 17 deletions

View File

@ -154,15 +154,18 @@ inputs:
default: '5Gi'
required: false
description: 'Amount of disc space to assign the Kubernetes Persistent Volume'
# To Do - enables resilience
# checkDependencyHealthOverride:
# default: ''
# required: false
# description: 'Use to specify a way to check depdency services health to enable resilient self-starting jobs'
# startDependenciesOverride:
# default: ''
# required: false
# description: 'Use to specify a way to start depdency services health to enable resilient self-starting jobs'
cacheKey:
default: 'branch'
required: false
description: 'Cache key to indicate bucket for cache'
checkDependencyHealthOverride:
default: ''
required: false
description: 'Use to specify a way to check depdency services health to enable resilient self-starting jobs'
startDependenciesOverride:
default: ''
required: false
description: 'Use to specify a way to start depdency services health to enable resilient self-starting jobs'
outputs:
volume:
description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes'

11
dist/index.js vendored
View File

@ -328,6 +328,9 @@ class BuildParameters {
readInputOverrideCommand: input_1.default.readInputOverrideCommand(),
readInputFromOverrideList: input_1.default.readInputFromOverrideList(),
kubeStorageClass: input_1.default.kubeStorageClass,
checkDependencyHealthOverride: input_1.default.checkDependencyHealthOverride,
startDependenciesOverride: input_1.default.startDependenciesOverride,
cacheKey: input_1.default.cacheKey,
};
});
}
@ -2994,7 +2997,7 @@ class CloudRunnerState {
return path_1.default.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildParams.buildGuid);
}
static get cacheFolderFull() {
return path_1.default.join('/', CloudRunnerState.buildVolumeFolder, CloudRunnerState.cacheFolder, CloudRunnerState.branchName);
return path_1.default.join('/', CloudRunnerState.buildVolumeFolder, CloudRunnerState.cacheFolder, CloudRunnerState.cacheKey);
}
static setup(buildParameters) {
CloudRunnerState.buildParams = buildParameters;
@ -3002,6 +3005,9 @@ class CloudRunnerState {
static get branchName() {
return CloudRunnerState.buildParams.branch;
}
static get cacheKey() {
return CloudRunnerState.buildParams.cacheKey || CloudRunnerState.buildParams.branch;
}
static get builderPathFull() {
return path_1.default.join(CloudRunnerState.buildPathFull, `builder`);
}
@ -4240,6 +4246,9 @@ class Input {
static get startDependenciesOverride() {
return Input.getInput('startDependenciesOverride') || '';
}
static get cacheKey() {
return Input.getInput('cacheKey') || '';
}
static ToEnvVarFormat(input) {
return input
.replace(/([A-Z])/g, ' $1')

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -13,6 +13,7 @@
"format": "prettier --write \"src/**/*.{js,ts}\"",
"prepare": "husky install",
"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",
"cli-aws": "cross-env cloudRunnerCluster=aws 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",

View File

@ -47,6 +47,9 @@ class BuildParameters {
public cachePullOverrideCommand!: string;
public readInputFromOverrideList!: string;
public readInputOverrideCommand!: string;
public checkDependencyHealthOverride!: string;
public startDependenciesOverride!: string;
public cacheKey!: string;
public postBuildSteps!: string;
public preBuildSteps!: string;
@ -135,6 +138,9 @@ class BuildParameters {
readInputOverrideCommand: Input.readInputOverrideCommand(),
readInputFromOverrideList: Input.readInputFromOverrideList(),
kubeStorageClass: Input.kubeStorageClass,
checkDependencyHealthOverride: Input.checkDependencyHealthOverride,
startDependenciesOverride: Input.startDependenciesOverride,
cacheKey: Input.cacheKey,
};
}

View File

@ -5,6 +5,14 @@ import { CloudRunnerStatics } from './cloud-runner-statics';
import { TaskParameterSerializer } from './services/task-parameter-serializer';
import UnityVersioning from '../unity-versioning';
function guid() {
return Math.trunc((1 + Math.random()) * 0x10000)
.toString(16)
.slice(1);
}
function guidGenerator() {
return `${guid() + guid()}-${guid()}-${guid()}-${guid()}-${guid()}${guid()}${guid()}`;
}
describe('Cloud Runner', () => {
it('responds', () => {});
});
@ -55,6 +63,7 @@ describe('Cloud Runner', () => {
versioning: 'None',
projectPath: 'test-project',
unityVersion: UnityVersioning.read('test-project'),
cacheKey: `test-case-${guidGenerator()}`,
};
Input.githubInputEnabled = false;
const buildParameter = await BuildParameters.create();

View File

@ -16,12 +16,7 @@ export class CloudRunnerState {
}
public static get cacheFolderFull(): string {
return path.join(
'/',
CloudRunnerState.buildVolumeFolder,
CloudRunnerState.cacheFolder,
CloudRunnerState.branchName,
);
return path.join('/', CloudRunnerState.buildVolumeFolder, CloudRunnerState.cacheFolder, CloudRunnerState.cacheKey);
}
static setup(buildParameters: BuildParameters) {
@ -31,6 +26,10 @@ export class CloudRunnerState {
public static get branchName(): string {
return CloudRunnerState.buildParams.branch;
}
public static get cacheKey(): string {
return CloudRunnerState.buildParams.cacheKey || CloudRunnerState.buildParams.branch;
}
public static get builderPathFull(): string {
return path.join(CloudRunnerState.buildPathFull, `builder`);
}

View File

@ -287,6 +287,10 @@ class Input {
return Input.getInput('startDependenciesOverride') || '';
}
static get cacheKey(): string {
return Input.getInput('cacheKey') || '';
}
public static ToEnvVarFormat(input: string) {
return input
.replace(/([A-Z])/g, ' $1')