条件步骤(多个)- Jenkins 中的量角器碎片直到最后一步才 运行

Conditional Steps (Multiple) - Protractor shards in Jenkins not running till last step

我更改了 Jenkins 中的配置以执行多个构建步骤(Shell),步骤是:

1 - 为我的脚本执行一些先决条件

2 - 脚本的第一部分

//我必须将执行分开,以免消耗我用来执行的 VM 的所有资源

3 - 其余脚本

4 - 合并我所有的 xml 报告文件。

该步骤的示例是:

export AUTOTEST_HOME="${WORKSPACE}"
export AUTOTEST_ADDRESS= IPaDD

cd "${AUTOTEST_HOME}/e2e_ui_tests/development_new_ui/"

ls -lah

if [ -L lib/node_modules ]; then
  unlink lib/node_modules
fi

if [ -L node_modules/node_modules ]; then
  unlink node_modules/node_modules
fi

#Running just install, without the post install scripts
npm install --ignore-scripts

#Library access symlink 
ln -s ../node_modules/ lib/node_modules

cd "${AUTOTEST_HOME}/e2e_ui_tests/development_new_ui/sharding/"

#Run the Prereq script to prepare the portal
./../lib/node_modules/protractor/bin/protractor 1_Conf_prereq.js

问题在于,由于第 2 步包含一些失败(验证发现的错误),Jenkins 在执行后停止构建步骤,忽略其余部分。

有没有办法让它 运行 到最后一步,如果是这样,就失败了?

我尝试在步骤的最前面加上set +e来避免步骤的退出,但是没有用 (https://support.cloudbees.com/hc/en-us/articles/218517228-How-to-Ignore-Failures-in-a-Shell-Step)

” [12:02:55] E/launcher - 进程已退出,错误代码为 1 构建步骤 'Conditional steps (multiple)' 将构建标记为失败

[htmlpublisher] 正在归档 HTML 报告...

"

PS:根据先决条件和规范正确触发量角器,在脚本发现第一个问题后失败

知道如何解决这个问题吗?谢谢!

1.|| error1=true 附加到启动量角器的命令中,因此您有

./../lib/node_modules/protractor/bin/protractor 1_Conf_prereq.js || error1=true

如果测试失败它声明一个变量error1=true

2. 您的下一个挑战是这个变量是本地变量,在您的下一个脚本中不可用。按照 here 所述将其设为全局。

本质上,这里的方法是创建一个文本文件来存储变量,然后将此变量注入全局(环境)范围。

记住 echo AOEU=$(echo aoeu) > propsfileecho AOEU=$(echo aoeu) >> propsfile 之间的区别。第一个创建一个新文件,另一个在现有文件中添加一个新行(当您添加第二个、第三个等变量时)

3. 对你的另一步做同样的事情,直到最后一步

4. 从您在 2.

中创建的文件中注入您的环境变量

5. 添加选择失败或通过作业的最后一步

if [ $error1 || $error2 || $error3 ]
then
    exit 1
fi

我已经有一段时间没有这样做了。现在我正在使用管道语法和 docker 图像。所以我写的可能不准确,需要调试,但是方法是一样的