使用GoCD,如何为下一阶段定义舞台的整个工作区(作为单个工件)?这将极大地简化我的设置,在这个过程中,第二阶段需要从前一个阶段获取许多不同的工件。
我尝试了以下工件声明:
.这将导致在第一阶段的上载过程中出现错误:
[go] The rule [.] cannot match any resource under [pipelines/mypipeline]
[go] [go] Uploading finished. Failed to upload [.]*这不会导致错误,但会导致根文件夹中每个目录的单独上载,而不是整个工作区的单个工件。因此,我仍然需要获取多个具体工件,而不是一个大的工作区工件。
[go] Uploading artifacts from /var/lib/go-agent/pipelines/mypipeline/.svn to [defaultRoot]
[go] Uploading artifacts from /var/lib/go-agent/pipelines/mypipeline/cruise-output to [defaultRoot]
[go] Uploading artifacts from /var/lib/go-agent/pipelines/mypipeline/<dir1> to [defaultRoot]
[go] Uploading artifacts from /var/lib/go-agent/pipelines/mypipeline/<...> to [defaultRoot]
[go] Uploading artifacts from /var/lib/go-agent/pipelines/mypipeline/<dirN> to [defaultRoot]我可能可以自己用另一个任务压缩所有东西,并将其定义为工件,但是由于GoCD已经对其进行了压缩和解压缩,我认为必须有一个更简单的解决方案来解决我的问题。
发布于 2021-05-08 00:51:51
我不是专家,只是GoCD的新手,但是在经历了同样的尝试和错误之后,我将分享我从我的经验中发现的语法。用于上游管道中的构建工件。
#{BUILD_DIR}/*.whl --在定义构建工件时,似乎使用了通配符语法;注意:大括号{XXX_XX}之间的值是管道参数。#{ARTIFACT_DIR} -我更喜欢把所有的工件放在一个单独的文件夹中,因为它更容易获取。GoCD将压缩和传输文件夹,并在下游管道中解压它。在下游管道中,当使用“获取工件”任务检索工件时,或同一管道中的其他阶段:
#{ARTIFACT_DIR} -我只使用目录名来获取整个目录。./ -在本例中,获取的目录将在当前文件夹中提取。注意:注意:上面的语法只用于在"抓取人工物品任务“中未选中源为文件(而不是目录)复选框的情况下获取工件目录。
当我尝试用管道参数或环境变量参数化一个文件名(例如,我的文件工件包含一个动态生成的版本)时,我无法取工件文件,而且我在GoCD文档或示例中没有发现任何表明这是可能的东西。文档中有下载文件名的示例,该文件名是常量,不会更改。
如果可能的话,请共享文件工件参数化的示例,或者在可能的情况下提供建议的解决方案。
https://stackoverflow.com/questions/44696250
复制相似问题