我有python脚本,它执行REST命令并处理结果。我希望这个脚本可以被不同的Jenkins管道使用,我通过Jenkins官方文档找到的一种方法是使用共享库'这些例子(也是我在网上找到的其他例子)他们使用Groovy。
我的问题是,是否可以使用除Groovy之外的其他语言创建共享库?对于前者蟒?
答案 0 :(得分:5)
简短的回答是否定的。所有Jenkins Pipeline执行(现在)都是专门的Groovy,它使用Pipeline: Groovy插件执行,该插件使用Groovy CPS库来执行编译和运行时转换。 Jenkins Pipeline生态系统与Groovy密切相关。这可能在未来发生变化,但现在不值得努力。
如果你真的想在共享库中使用Python代码,你可以做的是将它放在库的resources/
文件夹中,然后加载并执行它管道步骤。您没有说明使用Python的原因(或what problem you are trying to solve),所以下面是一个人为的例子:
在您的共享资源库中:resources/com/mkobit/sharedlib/my_file.py
#!/usr/bin/env python
print("Hello")
共享库 Groovy全局变量:vars/mkobitVar.groovy
def runMyPython() {
final pythonContent = libraryResource('com/mkobit/sharedlib/my_file.py')
// There are definitely better ways to do this without having to write to the consumer's workspace
writeFile(file: 'my_file.py', text: pythonContent)
sh('chmod +x my_file.py && ./my_file.py')
}
在消费者中
@Library('mkobitLib') _
node('python') {
mkobitVar.runMyPython()
}