Jenkins共享库:如何从包中包含的python模块运行代码?

2024-09-29 22:26:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想运行一个python脚本作为从github repo触发的jenkins pipline的一部分。如果我直接将脚本存储在repo本身中,我可以只做sh 'python path/to/my_package/script.py'这项工作非常完美。但是,由于我想从多个repo的多个管道中使用它,所以我想把它放在jenkins共享库中。在

我找到了this question,它建议将python文件存储在resources目录中,并在使用之前将其复制到临时文件中。只有当脚本是一个独立文件时,这才有效。不幸的是,我的包中有多个python文件和它们之间的导入,所以这是不可能的。我还试图从this question的答案中复制包含python包的整个文件夹,这意味着使用

import groovy.transform.SourceURI
import java.nio.file.Path
import java.nio.file.Paths

class ScriptSourceUri {
    @SourceURI
    static URI uri
}

但它给了我以下错误:

^{pr2}$

似乎还需要一些额外的权限,但我认为我无法获得这些权限(这是一台共享计算机)。在

所以呢?有人知道如何从jenkins共享库运行python包吗?现在,我能想到的唯一解决方案是手动重新创建python包的目录结构,这显然非常混乱和非通用。在

PS:在groovy中使用python脚本代替编写相同的脚本没有特别的原因。只是python脚本经过了很好的测试、理解和支持。用groovy重写整个过程现在是不可行的。在


Tags: 文件importgithub目录脚本权限repojava

热门问题