我已经创建了一个如下所示的管道,请注意我有脚本文件,即#34; backup_grafana.sh"和" gitPush.sh"在存在Jenkinsfile的源代码存储库中。但由于以下错误,我无法执行脚本: -
client.StoreMessage(MyMailMessage, False, box)
请注意,我在一个pod中运行kubernetes上的jenkins master。因此,无法按照错误的建议复制脚本文件,因为pod可能会被销毁并动态重新创建(在这种情况下使用新的pod,我的脚本将不再在jenkins master中提供)
/home/jenkins/workspace/grafana-backup@tmp/durable-52495dad/script.sh:
line 1: backup_grafana.sh: not found
您能否建议我如何在Jenkinsfile中运行这些脚本?我还想提一下,我想在我已经创建的python slave上运行这些脚本。
答案 0 :(得分:2)
如果命令' sh backup_grafana.sh'在实际应该成功执行时无法执行,这里有两种可能的解决方案。
1)也许你需要在这些可执行命令前面加一个点斜杠来告诉你shell它们在哪里。如果它们不在您的$PATH
中,您需要告诉您的shell可以在当前目录中找到它们。这里添加了四个非空白字符的固定Jenkins文件:
pipeline {
agent {
node {
label 'jenkins-slave-python2.7'
}
}
stages {
stage('Take the grafana backup') {
steps {
sh './backup_grafana.sh'
}
}
stage('Push to the grafana-backup submodule repository') {
steps {
sh './gitPush.sh'
}
}
}
}
2)通过将以下其中一项声明为脚本中的第一行,检查您是否已将文件声明为bash或sh脚本:
#!/bin/bash
或
#!/bin/sh