in src/pipeline.ts [334:382]
private jobForBuildStep(node: AGraphNode, step: Step): Job {
if (!(step instanceof ShellStep)) {
throw new Error('synthStep must be a ScriptStep');
}
if (step.inputs.length > 0) {
throw new Error('synthStep cannot have inputs');
}
if (step.outputs.length > 1) {
throw new Error('synthStep must have a single output');
}
if (!step.primaryOutput) {
throw new Error('synthStep requires a primaryOutput which contains cdk.out');
}
const cdkOut = step.outputs[0];
const installSteps = step.installCommands.length > 0 ? [{
name: 'Install',
run: step.installCommands.join('\n'),
}] : [];
return {
id: node.uniqueId,
definition: {
name: 'Synthesize',
permissions: {
contents: github.JobPermission.READ,
},
runsOn: RUNS_ON,
needs: this.renderDependencies(node),
env: step.env,
container: this.buildContainer,
steps: [
...this.stepsToCheckout(),
...this.preBuildSteps,
...installSteps,
{
name: 'Build',
run: step.commands.join('\n'),
},
...this.postBuildSteps,
...this.stepsToUploadAssembly(cdkOut.directory),
],
},
};
}