首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS在源和构建之间添加一个阶段

AWS在源和构建之间添加一个阶段
EN

Stack Overflow用户
提问于 2022-01-06 00:03:15
回答 1查看 1.8K关注 0票数 4

我按照使用CDK管道的连续集成和交付(CI/CD)指南实现了一个CodePipeline。我想知道如何在CDK中添加一个将在Source阶段之后但在Build阶段之前运行的管道。

这是我的管道代码:

代码语言:javascript
复制
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之后,我可以使用控制台在SourceBuild之前添加一个舞台,但我希望这是CDK代码的一部分。

用TypeScript编写的CDK2.3.0版本

我使用的是最近的aws-cdk-lib.pipelines模块,而不是[医] codepipeline模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-06 10:57:51

因此,CDK确定您所创建的操作的位置的方式,是通过它们的输入和输出。要在源和构建之间添加一个操作,您需要创建一个操作(或一系列操作),该操作将源输出作为输入,并生成一个由synth步骤用作输入的输出。

下面是Python中的一个示例,它在TS中的工作方式是相同的:

代码语言:javascript
复制
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=['...']
)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70601017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档