我有一个用户交互式shell脚本,该脚本在Linux服务器上成功运行。但是当我尝试通过詹金斯运行它时,它不会运行。
我创建了一个Jenkinsfile。
Jenkinsfile
node('slaves') {
try
{
def app
stage('Remmove Docker service') {
sh 'sshpass ssh docusr@10.26.13.12 "/path/to/shell/script"'
}
}
}
Shell脚本
#!/bin/bash
read -p "Hi kindly enter the api name : " api
docker service logs $api --raw
shell Scipt在我的本地服务器上成功运行,当我尝试使用Jenkinsfile在Jenkins上运行时,它不接受用户交互的shell脚本中的$api
变量。
答案 0 :(得分:0)
如果我正确理解的话,那么你试图达到的目标并没有达到詹金斯自动化工作的目的。因此,您的工作实际上是在寻求用户输入,在这种情况下,最好拥有parameterized jenkins build。
对于您的情况,您仍然可以给sshpass命令$api
赋一个参数,并使其从jenkins环境本身读取,或者更好地使您的jenkins build parameterized并使用用户输入$api
作为参数。