【问题标题】:Failing a Jenkins job on a condition在条件下未能完成 Jenkins 工作
【发布时间】:2016-01-23 05:17:29
【问题描述】:

最终目标是在 Linux 机器上的文件夹 a 内的所有文件 n 子目录中搜索控制 m 个字符。如果是,请不要继续进行 ANT 构建并使作业失败。如果没有,请继续 ANT 构建。

在 Jenkins 工作中,我编写了这个脚本 outline of the script

Cd 批次 grep -r "\r" > text-file \ 查找 ctrl m char 并重定向到文本文件(如果是)。

然后比较内容。如果文本文件为空,则构建失败。

如果 [-s] 作业失败,则生成。

  1. 这是用Linux脚本实现的好办法吗?如果没有更好的方法是什么?

  2. 如何使用执行 shell 配置 Jenkins 作业并使 shell 失败并且 Jenkins 作业在条件下失败?

谢谢

【问题讨论】:

  • 如果您以非零值退出脚本,Jenkin 会将其视为失败。这有什么问题?
  • 是的..我可以使用出口 1。我猜应该这样做。我打算测试生产 Jenkins 工作,看看它是否有效。谢谢
  • 我打算测试 Jenkins 的生产作业。为什么?最好在本地机器上运行 Jenkins,测试基本的东西......然后部署。

标签: jenkins shell-exec


【解决方案1】:

选项 1:以非零值退出脚本。默认情况下,Jenkins 将其检测为失败。

选项 2:使用 Console Parser plugin 查找错误模式。

两者都可以与Build failure analyser 结合使用,以便向用户发送简洁的消息。

【讨论】:

    【解决方案2】:

    对于那些仍然难以理解如何以及在何处编写非零值退出的人。下面是一个非零退出的 Jenkins 流水线脚本。

     pipeline{
        agent any
        
        stages{
            stage('Git Checkout'){
                steps{
                    git branch: "${BRANCH}",
                    credentialsId: 'github-cred', 
                    url: 'https://github.com/exam105/some-repo.git'
                    exit 1
                }
            }
            stage('Build Project'){
                steps{
    
                }        
            }
        } 
    }
    
    

    构建项目阶段不会运行。

    【讨论】:

      猜你喜欢
      • 2021-02-01
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多