jenkins 判断构建操作执行成功了还是失败

  • 可以通过返回0或1的结果。成功的话,返回0;不成功返回1.
  • 比如shell脚本,通过if判断某个条件,最后,成功:exit 0不成功:exit 1
python -u ./jenkins_run_test.py -i ${Random}
if [ $? -eq 0 ]; then ## $? 是shell 上一条命令的返回值,如果执行成功,退出码是 0,如果失败,退出码是 非0
     echo "The Job Excute Success........"
else
     echo "The Job  Excute Failed........."
     exit 1
fi
  • 但是我在进行如上操作之后,依旧会出现 shell 脚本失败,并且报错,但是构建依旧成功,这时候,就需要去检查你的原生的python 脚本,是不是进行了容错性处理,比如捕捉信号,或者使用进程去跑,我的python代码执行如下:
 def signal_handler(signum, frame):
    log.info('=== enter func :   [signal_handler] ')
    log.info('=== signal : {}'.format(signum))
    if signum == signal.SIGHUP:
        log.warning('=== WARN : Ignore SIGHUP ...')
        return
    try:
        pool.terminate() ## 
        pool.join()
    finally:
        exit(0)


def worker_run():
        print('=== Start worker')
        worker = test_worker(settings, all_dev)
        worker.start()

    p = Process(target = worker_run, args = ())
    p.start()
    p.join()

改动之后的代码:

def worker_run():
        print('=== Start worker')
        worker = test_worker(settings, all_dev)
        worker.start()

    worker_run()
    ## p = Process(target = worker_run, args = ())
    ## p.start()
    ## p.join()

在改动之后,如果python 脚本执行出错,构建就会同步,出现failtrue.

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐