in src/pipeline.ts [244:283]
private jobForAssetPublish(node: AGraphNode, assets: StackAsset[], options: Context): Job {
const installSuffix = this.cdkCliVersion ? `@${this.cdkCliVersion}` : '';
const cdkoutDir = options.assemblyDir;
// create one file and make one step
const relativeToAssembly = (p: string) => path.posix.join(cdkoutDir, path.relative(path.resolve(cdkoutDir), p));
const fileContents: string[] = ['set -x'].concat(assets.map((asset) => {
return `npx cdk-assets --path "${relativeToAssembly(asset.assetManifestPath)}" --verbose publish "${asset.assetSelector}"`;
}));
const publishStepFile = path.join(cdkoutDir, `publish-${node.uniqueId}-step.sh`);
mkdirSync(path.dirname(publishStepFile), { recursive: true });
writeFileSync(publishStepFile, fileContents.join('\n'), { encoding: 'utf-8' });
const publishStep: github.JobStep = {
name: `Publish ${node.uniqueId}`,
run: `/bin/bash ./cdk.out/${path.relative(cdkoutDir, publishStepFile)}`,
};
return {
id: node.uniqueId,
definition: {
name: `Publish Assets ${node.uniqueId}`,
needs: this.renderDependencies(node),
permissions: {
contents: github.JobPermission.READ,
},
runsOn: RUNS_ON,
steps: [
...this.stepsToDownloadAssembly(cdkoutDir),
{
name: 'Install',
run: `npm install --no-save cdk-assets${installSuffix}`,
},
...this.stepsToConfigureAws({ region: 'us-west-2' }),
publishStep,
],
},
};
}