1

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

我发现这个问题建议将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
}

但它给了我以下错误:

Scripts not permitted to use staticMethod java.net.URI create java.lang.String. Administrators can decide whether to approve or reject this signature.

似乎需要一些额外的权限,我认为我无法获得(它是一台共享机器)。

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

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

4

1 回答 1

1

您可以转到Jenkins 安装的http://host:8080/jenkins/scriptApproval/页面并批准您的脚本请求,请参见下文:-

在此处输入图像描述

并点击链接了解更多信息。

于 2019-08-28T06:48:45.237 回答