unity-builder/src/model/cloud-runner/workflows/custom-workflow.ts

31 lines
1.1 KiB
TypeScript

import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerState } from '../state/cloud-runner-state';
import YAML from 'yaml';
export class CustomWorkflow {
public static async runCustomJob(buildSteps) {
CloudRunnerLogger.log(`Cloud Runner is running in custom job mode`);
buildSteps = YAML.parse(buildSteps);
for (const step of buildSteps) {
const stepSecrets: CloudRunnerSecret[] = step.secrets.map((x) => {
const secret: CloudRunnerSecret = {
ParameterKey: x.name,
EnvironmentVariable: x.name,
ParameterValue: x.value,
};
return secret;
});
await CloudRunnerState.CloudRunnerProviderPlatform.runBuildTask(
CloudRunnerState.buildGuid,
step['image'],
step['commands'],
`/${CloudRunnerState.buildVolumeFolder}`,
`/${CloudRunnerState.buildVolumeFolder}`,
CloudRunnerState.defaultGitShaEnvironmentVariable,
[...CloudRunnerState.defaultSecrets, ...stepSecrets],
);
}
}
}