首页 > 解决方案 > Bamboo Spec YAML 和共享工件的位置

问题描述

在使用 Gradle 驱动 Bamboo 服务器(版本 7.2.1)上的构建、测试和其他作业/阶段的上下文中,我配置了 env。变量GRADLE_USER_HOME将下载的 Gradle 二进制文件保存到项目本地路径,以便与进一步的下游作业/阶段共享它。

但不幸的是,Bamboo 忽略了工件的“源”或location文件夹。摘自我们的bamboo.yaml

Build Java application artifact:
  tasks:
    - script:
        scripts:
          - "export GRADLE_USER_HOME=${bamboo.build.working.directory}/GradleUserHome"
          - ./gradlew --no-daemon assemble
          - "echo GRADLE USER HOME content; ls -al $GRADLE_USER_HOME/; echo '---'"  # DEBUG
  artifacts:
    - name: "Gradle Wrapper installation"
      location: GradleUserHome
      pattern: '**/*.*'
      required: true
      shared: true

该命令的调试输出echo显示了预期的内容。

但是下一个下游作业显示,工件“Gradle Wrapper 安装”的内容是对于项目的工作区安装的,但不是在子文件夹./GradleUserHome中,如locationkey 所示(就像提到location的配置项被下游作业/阶段简单地忽略一样)。

任何想法如何解决这一问题?

谢谢

PS:下一个下游作业在其日志消息中显示如下:

Preparing artifact 'Gradle Wrapper installation' for use at /var/atlassian/bamboo-agent02-home/xml-data/build-dir/[...] (location: )

注意 location

标签: bamboobamboo-specsbamboo-artifacts

解决方案


推荐阅读