gpt4 book ai didi

go-cd - GoCD : How to define a pipeline's entire workspace as an artifact for the next stage?

转载 作者:行者123 更新时间:2023-12-03 21:29:48 25 4
gpt4 key购买 nike

使用 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 已经开始压缩和解压缩,我认为必须有一个更简单的解决方案来解决我的问题。

    最佳答案

    我不是专家,只是一个新手 GoCD ,但在经历了同样的反复试验的痛苦之后,我将分享我从我的经验中发现的有效语法。对于 中的构建工件上游管道 :

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

  • 下游管道或使用“获取工件”任务检索工件时同一管道中的另一个阶段:
  • 来源:#{ARTIFACT_DIR} - 我只使用目录名来获取整个目录
  • 目的地 ./ - 在这种情况下,获取的目录将被提取到当前文件夹中

  • 注意:上述语法仅用于在未选中“ Fetch Artifact Task”中的“源是文件(不是目录)”复选框的情况下获取工件目录。
    我无法 fetch artifact files当我尝试使用管道参数或环境变量(例如我的文件工件包含动态生成的版本)参数化文件名时,我没有在 GoCD 文档或示例中找到任何表明可能的内容。文档有下载文件名的示例,该文件名是常量且不会更改。
    如果可能,请分享参数化文件工件的示例或建议的解决方法(如果可能的话)。

    关于go-cd - GoCD : How to define a pipeline's entire workspace as an artifact for the next stage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44696250/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com