【发布时间】:2015-09-16 21:14:19
【问题描述】:
我尝试了多种方法来自动传递带有身份验证的 URL 和参数(来自使用参数插件的构建)以通过 wget 命令远程启动作业:
/usr/bin/wget --auth-no-challenge --http-user=<http-user> --http-password=<password like> http://<IP>:8080/job/<jobName>/buildWithParameters?token=<tokeName>&<param1>=<text1>
非参数化版本运行平稳,没有任何问题,但必要的<param1> 不适用于该作业。
在 build with pararmeters 作业中设置默认值,可以顺利运行作业,但会破坏通过脚本远程运行的目的。
这是一个经过净化的输出:
Started by remote host x.x.x.x
[EnvInject] - Loading node environment variables.
[EnvInject] - Preparing an environment for the build.
[EnvInject] - Keeping Jenkins system variables.
[EnvInject] - Keeping Jenkins build variables.
[EnvInject] - [ERROR] - The given properties file path '/var/lib/jenkins/<paramsFolder>/.properties' doesn't exist.
[EnvInject] - [ERROR] - Missing file path was resolved from pattern '/var/lib/jenkins/<paramsFolder>/${NAMESTR}.properties' .
ERROR: SEVERE ERROR occurs
org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: The given properties file path '/var/lib/jenkins/<paramsFolder>/.properties' doesn't exist.
在作业的配置中,NAMESTR 被定义为一个字符串参数。当给定适当的默认值时,作业按预期运行。如果作业中没有默认值,则无法通过 wget 命令获得该作业的参数值,如上面的输出所示。
我必须具有身份验证和命令行方法才能将参数提供给作业。我无法与 Jenkins 用户界面交互以手动运行命令。
有什么想法吗?有解决办法吗?
【问题讨论】:
标签: jenkins parameters jenkins-plugins