在交付管道中的构建阶段生成项目失败



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

代码生成映像后,生成阶段在生成项目时失败。

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

我已指定"构建存档目录"作为文件夹名称。我是否需要编写任何用于存档的脚本?

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

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

此问题似乎是由为作业设置工作目录引起的。 _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调用执行一些处理,因此请确保它仍然存在。

  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

相关内容

  • 没有找到相关文章

最新更新