she*_*eer 3 shared-libraries jenkins-pipeline
我有执行REST命令并处理结果的python脚本。我希望这个脚本可以被不同的Jenkins Pipelines使用,我通过Jenkins官方文档发现的一种方式是使用“共享库”,而这些示例(以及我在网上找到的其他示例)也使用了Groovy。
我的问题是,是否可以用Groovy以外的其他语言创建共享库?对于前。蟒蛇?
简短的答案是没有。所有Jenkins Pipeline执行(现在)都是专门的Groovy,可通过Pipeline:Groovy插件执行,该插件使用Groovy CPS库执行编译和运行时转换。詹金斯管道生态系统与Groovy紧密相关。将来可能会改变,但现在不值得付出努力。
如果您确实想在共享库中使用Python代码,则可以做的是将其放入resources/库的文件夹中,然后使用管道步骤进行加载和执行。没有说明您为什么要使用Python的用例(或您要解决的问题),因此以下是一个人为的示例:
在您的共享库中: resources/com/mkobit/sharedlib/my_file.py
#!/usr/bin/env python
print("Hello")
Run Code Online (Sandbox Code Playgroud)共享库 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')
}
Run Code Online (Sandbox Code Playgroud)在消费者中
@Library('mkobitLib') _
node('python') {
mkobitVar.runMyPython()
}
Run Code Online (Sandbox Code Playgroud)