【问题标题】:Building Artifactory fails for Build Stage in Delivery Pipeline交付管道中构建阶段的构建工件失败
【发布时间】:2018-09-15 06:43:26
【问题描述】:

我创建了一个工具链,它从 bitbucket 存储库下载代码并在 IBM Cloud 中构建 docker 映像。

代码构建镜像后,构建工件时构建阶段失败。

Error:
Preparing the build artifacts...
Customer script does not exist for the job, exitting

我已将构建存档目录指定为文件夹名称。我需要编写任何脚本进行归档吗?

【问题讨论】:

  • @William 感谢您的编辑。谁能回答这个问题。
  • 我会联系一些人,看看他们是否能提供帮助。

标签: ibm-cloud toolchain ibm-cloud-tools devops-services


【解决方案1】:

当我们的一项检查——/home/pipeline/$TASK_ID/_customer_script.sh 的存在——失败时,就会发生该特定错误。

存档是自动进行的,但该文件需要存在,因为我们将其用作围绕工件创建方式的可追溯性的一部分。该文件是否有可能被删除? (也将考虑删除或使检查不致命,但这需要时间)

【讨论】:

  • 为什么要使用这个_customer_script?是的,我的构建成功了。但我无法使用此脚本创建或移动任何文件。
  • _customer_script 包含您要运行的脚本。检查最初是为了纠正知道作业的根在哪里运行的一种方式。 -- 你能分享一下你在你的脚本中想要做什么吗?
【解决方案2】:

此问题似乎是由为作业设置工作目录引起的。 _customer_script.sh 被放入工作目录,但 Simon 引用的脚本 (/opt/IBM/pipeline/bin/ids-buildables-notify.sh) 仅检查代码输入所在的顶级目录 (/home/pipeline/$TASK_ID/)。

三个选项来解决这个问题,假设你正在做一个容器注册工作:

  1. 在您的脚本中运行 cp _customer_script.sh /home/pipeline/$TASK_IDids-buildables-notify.sh 脚本为您的 bx cr build 调用做了一些 grepping,所以请确保它仍然存在。

  2. touch /home/pipeline/$TASK_ID/_customer_script.shexport PIPELINE_IMAGE_URL=<your image url>。如果设置了 PIPELINE_IMAGE_URL,则通知脚本不会因为聪明而烦恼,这是我更喜欢的。

  3. 不要更改工作目录。

适合我的脚本:

#!/bin/bash
echo -e "Build environment variables:"
echo "REGISTRY_URL=${REGISTRY_URL}"
echo "REGISTRY_NAMESPACE=${REGISTRY_NAMESPACE}"
echo "IMAGE_NAME=${IMAGE_NAME}"
echo "BUILD_NUMBER=${BUILD_NUMBER}"

echo -e "Building container image"
set -x
export PIPELINE_IMAGE_URL=$REGISTRY_URL/$REGISTRY_NAMESPACE/$IMAGE_NAME:$BUILD_NUMBER
bx cr build -t $PIPELINE_IMAGE_URL .
set +x

touch /home/pipeline/$TASK_ID/_customer_script.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多