我按照使用CDK管道的连续集成和交付(CI/CD)指南实现了一个CodePipeline。我想知道如何在CDK中添加一个将在Source阶段之后但在Build阶段之前运行的管道。
这是我的管道代码:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { Repository } from 'aws-cdk-lib/aws-codecommit';
import { CodePipeline, CodePipelineSource, ShellStep } from 'aws-cdk-lib/pipelines';
export class MyPipelineStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const repo = Repository.fromRepositoryName(this, 'CogClientRepo', 'cog-client');
const pipeline = new CodePipeline(this, 'Pipeline', {
pipelineName: 'MyPipeline',
synth: new ShellStep('Synth', {
input: CodePipelineSource.codeCommit(repo, 'main'),
commands: ['npm ci', 'npm run build', 'npx cdk synth']
})
});
}
}运行cdk deploy之后,我可以使用控制台在Source和Build之前添加一个舞台,但我希望这是CDK代码的一部分。

用TypeScript编写的CDK2.3.0版本
我使用的是最近的aws-cdk-lib.pipelines模块,而不是[医] codepipeline模块。
发布于 2022-01-06 10:57:51
因此,CDK确定您所创建的操作的位置的方式,是通过它们的输入和输出。要在源和构建之间添加一个操作,您需要创建一个操作(或一系列操作),该操作将源输出作为输入,并生成一个由synth步骤用作输入的输出。
下面是Python中的一个示例,它在TS中的工作方式是相同的:
my_source_action = CodePipelineSource.code_commit(repo, "main")
my_intermediary_action = CodeBuildStep("myAction", input=my_source_action)
my_synth_action = ShellStep(
"Synth",
input=my_intermediary_action,
commands=['...']
)https://stackoverflow.com/questions/70601017
复制相似问题