在使用jenkins的pipeline时,如果执行的命令中,有用到nurse库,就有如下错误信息,造成pipeline失败。
_curses.error: setupterm: could not find terminal |
使用nurse库,会在终端界面,显示字符界面。如著名的menuconfig,就是用的nurse来实现的。但是jenkins执行pipeline时,是没有终端界面的,因此就不能显示字符界面。
所以为了解决上述问题,就需要jenkins在执行时,能够有一个终端界面,去执行命令。
这里,就用到了jenkins的ssh远程执行功能。
首先,安装jenkins的ssh插件。
在系统管理->系统设置中,设置ssh的remote hosts。
要注意 Pty 选项,一定要选上。开启了该选项,在ssh远程执行时,就会有一个终端去执行。
之后,新建一个job,用来执行需要使用nurse库的操作。
构建,选择 Execute shell script on remote host using ssh。
SSH site:选择刚刚添加的host,command输入要执行的命令。
修改pipeline的jenkinsfile,在需要使用nurse库的地方,改成执行这个job即可。