gongstring技术博客
最新文章
源码解读
软件安装
常见问题
大数据
常用工具
鸡汤文
备案号:鄂ICP备15015839号-1
鄂公网安备 42010202001692号
jenkins添加脚本待程序启动成功才退出构建
2020-06-24 11:25:41
作者: gongstring
常用工具
/
jenkins添加脚本待程序启动成功才退出构建
## 需求 jenkins在构建完后,会去执行远程服务器上面的脚本,希望jenkins中能够打印脚本执行和程序启动的日志。同时当发现日志中包含启动成功标记的时候,标记jenkins构建成功,否则超过一定时间还没有出现成功标记,则构建失败。 ## 示例 代码启动成功时候会在日志文件中输出: ``` [] 2020-06-24 03:24:41 INFO com.gongstring.config.AfterStartRunner [39][main] - ============== Start plugins now ============== [] 2020-06-24 03:24:41 INFO com.gongstring.config.AfterStartRunner [55][main] - ========== gongstring-user.service Running Now ========== ``` 其中*Running Now*关键字出现的时候,说明启动成功。 在jenkins对应的shell脚本中添加如下脚本 ``` keywords="Running Now" logfile="/logs/gongstring.user/out.log" { sed /"$keywords"/q; exit 1; } < <(exec timeout 2m tail -Fn 0 $logfile) echo "------ start gongstring.user docker container success ------" ``` 其中*2m*是表示如果1分钟之类还没有日志输出,认为启动失败,防止无限等待(当然如果超过一定时间,jenkins会认为超时,执行结果是黄色) exit 1; 表示如果执行超时还没有返回成功标记,就通知jenkins构建失败。 ## 最终效果 jenkins构建完后的日志: ``` [] 2020-06-24 03:24:41 INFO com.gongstring.config.AfterStartRunner [39][main] - ============== Start plugins now ============== [] 2020-06-24 03:24:41 INFO com.gongstring.config.AfterStartRunner [55][main] - ========== gongstring-user.service Running Now ========== ------ start gongstring.user docker container success ------ SSH: EXEC: completed after 25,215 ms SSH: Disconnecting configuration [生产-171.101.41.71-gongstring] ... SSH: Transferred 2 file(s) Finished: SUCCESS ```