jenkins - 如何根据前一阶段的输出在 Jenkins 中运行条件以失败
问题描述
下面是我为提出我的问题而构建的一个基本结构。
stage('Run pre-checks') {
steps {
//Run pre-check scripts
}
}
stage('Deploy config ') {
when {
expression {
//Insert expression here
}
}
steps {
//Run a script
}
}
基于下面的构造,我要做的是仅当“运行预检查”脚本的特定输出显示在该阶段的标准输出上时才运行特定脚本,这将是一个 python 脚本。如果预检查显示此输出,您将跳过第二步而不是运行它。有人知道能够做到这一点的环境变量和/或方法吗?
解决方案
sh 命令可以返回一个值而不是打印它。
MY_OUTPUT = sh (
script: '... your command....',
returnStdout: true
)
然后你可以用 MY_OUTPUT (trim(), substr...) 做任何你想做的事
文档的当前链接在这里(Sh shell 脚本):
returnStdout(可选)
如果选中,则任务的标准输出将作为步骤值作为字符串返回,而不是打印到构建日志中。(标准错误,如果有的话,仍然会打印到日志中。)您经常需要在结果上调用 .trim() 以去除尾随的换行符。
类型:布尔值
推荐阅读
- laravel - 验证失败时未出现 Laravel 表单请求消息
- azure - 无法在 Azure Synapse 笔记本中将 ML 模型转储为 pickle 文件
- python - python中的exec()字符串函数
- postgresql - Postgres 功能在托管的 Web 项目中不起作用/调用
- django - 在类基础视图 django 中更新数据后发出两次调用 post_save 的信号
- discord.py - 如何使用带有 discord.py 的现有机器人使用 webhook
- python-3.x - 打印从 1 到 100 的数字并跳过可被 3 或 5 整除的数字。返回两个值的缩进错误
- kotlin - 在 Kotlin 中为依赖项块创建 Gradle 函数
- validation - Grails spock 测试因“GroovyCastException:无法投射对象”而失败
- javascript - 如何在滚动时浮动在 iframe src 内播放的视频(当视频超出视口时)