AWS CodePipeline不遵守CodeBuild设置

时间:2019-08-08 09:49:16

标签: aws-codepipeline aws-codebuild

我目前正在使用代码管道,代码构建,代码部署和代码提交创建管道。我将codebuild构建工件上传到s3时遇到问题,因为它不遵循我在buildspec.yml中设置的工件名称:

artifacts:
  files:
    - '**/build/*'
  name: build-$(date +%Y-%m-%d) 

相反,它随机创建一个构建名称。在我的代码构建设置中,我已经启用了语义版本控制,但是似乎它被代码管道忽略了,因为我可以在日志中看到,如果我运行代码管道或仅运行代码构建,则在生成构建工件时会有区别。

这是仅用于代码构建的日志中显示的内容:

[Container] 2019/08/08 09:28:07 Assembling file list 
[Container] 2019/08/08 09:28:07 Expanding **/build/* 
[Container] 2019/08/08 09:28:08 Found 144 file(s) 
[Container] 2019/08/08 09:28:08 Updating artifact name as  build-2019-08-08 

这是代码管道日志中显示的内容:

[Container] 2019/08/08 09:19:50 Assembling file list 
[Container] 2019/08/08 09:19:50 Expanding **/build/* 
[Container] 2019/08/08 09:19:50 Found 144 file(s) 
[Container] 2019/08/08 09:19:50 Phase complete: UPLOAD_ARTIFACTS State: SUCCEEDED 

当我运行代码管道时,日志中没有显示将工件名称更新为build-2019-08-08 行。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

在CodePipeline中将CodeBuild用作构建或测试步骤时,管道将控制工件的命名。意思是,工件命名由CodePipeline管理,不能被覆盖。

您有一个3级管道,即CodeCommit-> CodeBuild-> CodeDeploy。在配置管道时,您可以配置输出工件名称,该名称将作为下一阶段的输入。通过管道定义这些工件名称,可以使更改以版本化的方式流过。