我目前正在使用代码管道,代码构建,代码部署和代码提交创建管道。我将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 行。
有人可以帮我吗?
答案 0 :(得分:2)
在CodePipeline中将CodeBuild用作构建或测试步骤时,管道将控制工件的命名。意思是,工件命名由CodePipeline管理,不能被覆盖。
您有一个3级管道,即CodeCommit-> CodeBuild-> CodeDeploy。在配置管道时,您可以配置输出工件名称,该名称将作为下一阶段的输入。通过管道定义这些工件名称,可以使更改以版本化的方式流过。