首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoCD:如何将管道的整个工作区定义为下一阶段的工件?

GoCD:如何将管道的整个工作区定义为下一阶段的工件?
EN

Stack Overflow用户
提问于 2017-06-22 10:04:56
回答 1查看 987关注 0票数 4

使用GoCD,如何为下一阶段定义舞台的整个工作区(作为单个工件)?这将极大地简化我的设置,在这个过程中,第二阶段需要从前一个阶段获取许多不同的工件。

我尝试了以下工件声明:

  1. 工件源= .

这将导致在第一阶段的上载过程中出现错误:

代码语言:javascript
复制
[go] The rule [.] cannot match any resource under [pipelines/mypipeline]
[go] [go] Uploading finished. Failed to upload [.]
  1. 工件源= *

这不会导致错误,但会导致根文件夹中每个目录的单独上载,而不是整个工作区的单个工件。因此,我仍然需要获取多个具体工件,而不是一个大的工作区工件。

代码语言:javascript
复制
[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已经对其进行了压缩和解压缩,我认为必须有一个更简单的解决方案来解决我的问题。

EN

回答 1

Stack Overflow用户

发布于 2021-05-08 00:51:51

我不是专家,只是GoCD的新手,但是在经历了同样的尝试和错误之后,我将分享我从我的经验中发现的语法。用于上游管道中的构建工件。

  • 源:#{BUILD_DIR}/*.whl --在定义构建工件时,似乎使用了通配符语法;注意:大括号{XXX_XX}之间的值是管道参数
  • 目的地:#{ARTIFACT_DIR} -我更喜欢把所有的工件放在一个单独的文件夹中,因为它更容易获取。GoCD将压缩和传输文件夹,并在下游管道中解压它。

下游管道中,当使用“获取工件”任务检索工件时,或同一管道中的其他阶段:

  • 来源:#{ARTIFACT_DIR} -我只使用目录名来获取整个目录。
  • 目标./ -在本例中,获取的目录将在当前文件夹中提取。

注意:注意:上面的语法只用于在"抓取人工物品任务“中未选中源为文件(而不是目录)复选框的情况下获取工件目录。

当我尝试用管道参数或环境变量参数化一个文件名(例如,我的文件工件包含一个动态生成的版本)时,我无法取工件文件,而且我在GoCD文档或示例中没有发现任何表明这是可能的东西。文档中有下载文件名的示例,该文件名是常量,不会更改。

如果可能的话,请共享文件工件参数化的示例,或者在可能的情况下提供建议的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44696250

复制
相关文章

相似问题

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