我有一个常见的python脚本需要在多个管道作业中使用。 我所做的是使用常用方法创建一个qroovy文件,如下所示。
def create_slaves()
{
def cmd = 'python "-u my_script.py'
def proc = cmd.execute()
proc.waitfor()
}
return this
执行引发了这个例外。
Scripts not permitted to use staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods execute java.lang.String
所以我觉得这不是正确的做法。有人知道在管道中执行常见python脚本的合适方法吗?
答案 0 :(得分:1)
burnettk's answer在正确的轨道上但不完整。我不知道直接运行python脚本的官方方法,所以请尝试以下解决方法
将您的python脚本专门存储在shared library资源文件夹中。 (resources / yourscript.py)
然后将该文件作为字符串导入并将其写入文件。例如:
script{
def yourScriptAsaString = libraryResource '../resources/yourscript.py'
writeFile file: 'yourscript.py', text: yourScriptAsaString
sh "python yourscript.py"
}
答案 1 :(得分:0)
使用jenkins shared library并使用其中的sh
步骤。
sh
像这样进入每个Jenkins文件,并保持简单:
pipeline {
agent { label 'docker' }
stages {
stage('build') {
steps {
sh 'python -u my_script.py'
}
}
}
}