使用批处理脚本启动Jenkins构建

mic*_*i.b 10 continuous-integration batch-file jenkins

我正在使用Jenkins构建服务器来运行FPGA的综合/模拟.现在我有夜间构建,可以在Jenkins浏览器界面中手动启动构建.

我的问题是:

是否有可能在不使用浏览器界面的情况下使用批处理脚本启动作业构建?

(我在Windows 7 64bit上运行Jenkins.)

Bru*_*vit 25

以下是curl命令的示例(对于带参数的作业):

curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB/buildWithParameters?PARAM1=value1&PARAM2=value
Run Code Online (Sandbox Code Playgroud)

没有参数的工作:

curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB/build
Run Code Online (Sandbox Code Playgroud)

如果您不想使用您的用户/密码,可以为Jenkins用户生成API令牌:

在此输入图像描述

并在curl命令中使用此标记:

curl -X POST http://YOUR_JENKINS_URL/job/YOUR_JOB/build?TOKEN=YOUR_API_TOKEN
Run Code Online (Sandbox Code Playgroud)


小智 11

您可以使用配置的令牌而不是用户名/密码来触发Jenkins作业,这样您就可以共享触发器脚本而不会暴露自己的凭据.

  1. 转到您的工作配置.
  2. 向下滚动到构建触发器,并远程选中触发器构建(例如,从脚本中),然后输入身份验证令牌(例如,"MY_TOKEN").

在此输入图像描述

  1. 根据您的构建是否具有参数,复制" 身份验证令牌"字段下方的其中一个URL .

然后在curl命令中使用该URL 来触发构建.例如:

curl -I https://${JENKINS_URL}/job/tmp/job/dummy-test/build?token=MY_TOKEN
Run Code Online (Sandbox Code Playgroud)

-I参数curl指示打印响应的头部,您可以使用该头部来确定结果状态.如果成功,Jenkins会回复HTTP 201:

$ curl -I https://<JENKINS_URL>/job/tmp/job/dummy-test/build\?token\=MY_TOKEN
HTTP/1.1 201 Created
Cache-Control: public
Content-Length: 0
Date: Mon, 11 Apr 2016 12:47:26 GMT
Location: https://<JENKINS_URL>/queue/item/1707/
Pragma: public
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)