我想创建一个构建管道,开发人员需要在属性文件中设置一些内容,该属性文件使用前端GUI进行填充。
我尝试使用python运行示例CLI交互式脚本,该脚本只是询问名称并随后将其打印出来,但Jenkins只是等待了很长时间才被吊死。我看到它要求输入,但是用户无法输入数据。
编辑 :当前正在运行Jenkins作为服务。还是有人推荐一个好的插件,或者这是我创建python脚本的方式吗?
偏好: 我更喜欢使用Python,因为它有点轻巧,但是如果人们在使用其他语言方面取得了成功,我就可以使用。
使用GUI菜单填充数据会很酷,因为我可以使用选项框,下拉菜单并使其精美,但这不是必须的,CLI比我们当前的部署要好得多。
顺便说一句,所有这些都在运行Python 2.7和Java 1.7的Windows 7笔记本电脑上运行
对不起这篇文章!希望人们能帮助我!
抱歉,Jenkins不是交互式应用程序。它是为自动执行而设计的。
获取Jenkins作业(以及从该作业执行的所有内容)的输入的唯一可行方法是使用在作业开始 之前 填充的作业参数。诚然,用于参数输入的Jenkins GUI并不是最大的功能,但确实可以完成。一旦Jenkins作业在作业开始时收集了作业参数,便可以将这些参数传递给作业期间随时执行的任何内容(Python,shell等)。要做到这一点,必须有两件事是正确的:
设计良好的脚本应该能够简单地在命令行上接受参数:
./goodscript.sh MyName这将是最简单的方法,其中值MyName将存储在$1脚本的第一个参数中。随后的命令行参数将在变量中可用$2,$3依此类推。
./goodscript.sh MyName
MyName
$1
$2
$3
./goodscript.sh -name MyName -age 30这样做是一种更好的方法,其中脚本可以通过在参数值之前指定参数名称来获取多个参数,而不必考虑其顺序。您可以阅读有关将getopt用于此参数传递方法的信息
./goodscript.sh -name MyName -age 30
上面的两个示例都假定goodscript.sh编写足够好,能够处理那些命令行参数。如果脚本未显式处理命令行参数,则执行上述操作将无济于事。
goodscript.sh
您可以将某些输出“管道”到一个不是旨在显式处理命令行参数的交互式脚本中: echo MyName | ./interactivescript.sh将值传递MyName给interactivescript.sh提供给用户的第一个交互式提示。问题是您只能将值传递给第一个交互式提示。
echo MyName | ./interactivescript.sh
interactivescript.sh
就像我上面说的,您可以使用Jenkins GUI收集各种作业参数(下拉列表,复选框,文本输入)。我假设您知道如何使用参数设置Jenkins作业。如果没有,请在作业配置中单击 “此构建已参数化” 复选框。如果您不知道如何设置,那就是一个不同的问题,需要单独解释。
但是,一旦您的Jenkins作业预先收集了所有参数,就可以在 “执行shell” 步骤中引用它们。如果您使用的是Windows,则将它们称为%PARAM_NAME%,对于Linux ,则将其称为$PARAM_NAME。
%PARAM_NAME%
$PARAM_NAME
说明您需要帮助的内容:让脚本接受命令行参数,或者从jenkins job GUI传递这些命令行参数,我将进一步扩展此答案