注意:之前从未使用过詹金斯
我有一个 Python 脚本,它接受 3 个参数来运行。通过终端,您可以像这样使用它:
python script.py arg1 arg2 arg3
我想创建一个新的 jenkins 作业,它基本上利用这个脚本并在提供 3 个参数后运行它。但是我找不到运行此类作业的任何示例。该脚本放在 github repo 中,因此其路径如下所示:https://github.com/username/repo/folder/script.py
。这是我所做的:1. 我继续创建了一份新工作New Item --> Freestyle Project
。2. 在 GitBucket --> Githubproject 下,我添加了路径:https://github.com/username/repo/
3. 然后单击This build is parameterized
并添加了 3 个选择参数,即可能的选项。4. 然后在 build 下,我选择执行 shell 并给出命令python script.py $param1 $param2 $param3
我的问题是,在步骤 2 中,我是否应该提供脚本的路径,或者https://github.com/username/repo/folder/script.py
我现在拥有的路径是否正确。
任何建议/教程链接都会有帮助
答案1
如果你所需要的只是一个特定的文件-你可以只使用shell脚本
#!/bin/bash
wget -q -O sample.py https://raw.githubusercontent.com/Alexhha/hello-world/master/python/sample.py
/usr/bin/python sample.py ${ARG1} ${ARG2} ${ARG3}
sample.py 只是一个简单的脚本
import sys
print 'Sample output: %s, %s, %s' % (str(sys.argv[1]), str(sys.argv[2]), str(sys.argv[3]))
运行示例构建
你将得到类似下面的内容
该脚本位于私人仓库中
如果您在脚本内部克隆并且需要避免提示,则可以将令牌添加到克隆 URL:
git clone https://<token>@github.com/owner/repo.git
或者
git clone https://<token>:[email protected]/owner/repo.git
注意:令牌应被视为密码。将令牌放在克隆 URL 中会导致 Git 以纯文本形式将其写入 .git/config 文件。不幸的是,HTTP 密码也会发生这种情况。
答案2
听起来你需要做的就是在 exec shell 对话框中添加命令。其他设置对我来说听起来不错。你的 Jenkins 作业的控制台输出是什么?
如果您添加了 git repo 位置并且系统对该 repo 具有正确的访问权限,或者您在 Jenkins 作业中设置了凭据,请尝试通过添加 Python 的完整路径和脚本的本地路径来设置执行 shell 命令。
我们的 Jenkins 安装从每个作业的本地工作区容器执行。
执行 Shell:
/usr/bin/python ./folder/script.py $param1 $param2 $param3