【发布时间】:2022-01-23 12:10:14
【问题描述】:
假设我们有一个具有以下两个阶段的 CodePipeline:
new codepipeline.Pipeline(this, name + "Pipeline", {
pipelineName: this.projectName + "-" + name,
crossAccountKeys: false,
stages: [{
stageName: 'Source',
actions: [codeCommitSourceAction]
},{
stageName: 'Build',
actions: [buildAction]
}]
});
这里的 Source 阶段是我们从存储库中提取更改的地方,而 Build 阶段是一个 CodeBuild 项目,它在 buildspec 文件中具有以下操作:
- 安装依赖项 (
npm i)。 - 运行测试 (
npm run test)。 - 打包项目 (
npm run pack)。 - 更新/部署 lambda 函数 (
aws lambda update-function-code)。
通常它会做它应该做的事情,但是,如果构建失败,找出哪个部分失败的唯一方法是查看日志。我希望它可以直接从 CodePipeline 中看到。在这种情况下,CodePipeline 必须具有与 CodeBuild 中的每个操作相关的更多阶段。根据我的经验,如果我为每个阶段提供不同的 CodeBuild 项目,我可以做到。
问题:我能否为不同的 CodePipeline 阶段提供相同的 CodeBuild 项目,以便它只执行部分构建规范文件(例如,只运行测试)?
【问题讨论】:
标签: node.js typescript amazon-web-services aws-cdk aws-codebuild