我有一个 python 脚本,它执行 REST 命令并处理结果。我希望这个脚本能够被不同的 Jenkins Pipelines 使用,我通过 Jenkins 官方文档找到的一种方法是使用“共享库”,并且这些示例(还有我在网上找到的其他示例)使用 Groovy。
我的问题是,是否可以使用 Groovy 之外的其他语言创建共享库?对于前。蟒蛇?
简短的回答是否定的。所有 Jenkins Pipeline 执行(现在)都是专门的 Groovy,通过 Pipeline:Groovy 插件执行,该插件使用 Groovy CPS 库来执行编译和运行时转换。 Jenkins Pipeline 生态系统与 Groovy 紧密相关。未来可能会改变,但现在不值得付出努力。
如果您确实想在共享库中使用Python代码,您可以做的就是将其放入库的
resources/
文件夹中,然后使用管道步骤加载并执行它。没有说明为什么要使用 Python 的用例(或您试图解决什么问题),因此下面是一个人为的示例:
在您的共享库中:
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('python ./my_file.py')
}
在消费者中
@Library('mkobitLib') _
node('python') {
mkobitVar.runMyPython()
}