81 lines
2.7 KiB
TypeScript
81 lines
2.7 KiB
TypeScript
import BuildParameters from '../../../build-parameters';
|
|
import CloudRunnerEnvironmentVariable from '../../services/cloud-runner-environment-variable';
|
|
import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
|
import { ProviderInterface } from '../provider-interface';
|
|
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
|
import Docker from '../../../docker';
|
|
import { Action } from '../../../../model';
|
|
import CloudRunner from '../../cloud-runner';
|
|
|
|
class LocalDockerCloudRunner implements ProviderInterface {
|
|
inspect(): Promise<string> {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
watch(): Promise<string> {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
listResources(): Promise<string> {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
garbageCollect(
|
|
// eslint-disable-next-line no-unused-vars
|
|
filter: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
previewOnly: boolean,
|
|
): Promise<string> {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
cleanup(
|
|
// eslint-disable-next-line no-unused-vars
|
|
buildGuid: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
buildParameters: BuildParameters,
|
|
// eslint-disable-next-line no-unused-vars
|
|
branchName: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
|
) {}
|
|
setup(
|
|
// eslint-disable-next-line no-unused-vars
|
|
buildGuid: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
buildParameters: BuildParameters,
|
|
// eslint-disable-next-line no-unused-vars
|
|
branchName: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
|
) {}
|
|
public async runTask(
|
|
buildGuid: string,
|
|
image: string,
|
|
commands: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
mountdir: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
workingdir: string,
|
|
// eslint-disable-next-line no-unused-vars
|
|
environment: CloudRunnerEnvironmentVariable[],
|
|
// eslint-disable-next-line no-unused-vars
|
|
secrets: CloudRunnerSecret[],
|
|
): Promise<string> {
|
|
CloudRunnerLogger.log(buildGuid);
|
|
CloudRunnerLogger.log(commands);
|
|
|
|
const { workspace, actionFolder } = Action;
|
|
let myOutput = '';
|
|
let myError = '';
|
|
await Docker.run(image, { workspace, actionFolder, ...CloudRunner.buildParameters }, false, commands, {
|
|
stdout: (data: Buffer) => {
|
|
myOutput += data.toString();
|
|
},
|
|
stderr: (data: Buffer) => {
|
|
myError += data.toString();
|
|
throw new Error(myError);
|
|
},
|
|
});
|
|
|
|
return myOutput;
|
|
}
|
|
}
|
|
export default LocalDockerCloudRunner;
|