背景| 组内做UI测试,需要每天晚上执行一遍jenkins任务,jenkins任务本身是参数化构建的。但是因为jenkins本身的定时执行没有办法指定特殊的参数,所以考虑使用命令行方式启动jenkins
 

第一步:下载jenkins-cli.jar,查看帮助文档

不同版本的jenkins有自己对应命令行版本jar,所以最好从jenkins机上命令行说明页下载jar
 
访问jenkins的命令行说明页:http://192.168.111.111:8080/jenkins/cli
 
该页面可下载jenkins-cli.jar,并且介绍了一些命令
1.查看jenkins-cli.jar命令的帮助
java -jar jenkins-cli.jar -s http://192.168.111.111:8080/jenkins/ -help
 
如果想查看具体的某个jenkins-cli命令,可以在-help加上command
例如:查看build的具体使用方法
java -jar jenkins-cli.jar -s http://192.168.111.111:8080/jenkins/  help build
 
注意:最好用jenkins的ip加端口访问,我这里用域名访问会超时
 

第二步.使用build命令构建一个JOB

java -jar jenkins-cli.jar -s http://jenkinsurl  build JOBNAME -p tag=xxx --username xxx --password xxx
 
说明:
1.build后面直接跟JOB的名字
2.-p后面跟参数化构建的参数,使用key=value格式。如果有多个参数就写多个-p
3.—username和--password提供jenkins的账号密码
 
例如,执行jenkins的命令如下:
java -jar jenkins-cli.jar -s http://1192.168.111.111:8080/jenkins/  build UITest -p tag=20170922 -p ifRunUI=true -p  --username tester --password 123456
 
build的使用方法:
JOB : Name of the job to build
-c  : Check for SCM changes before starting the build, and if there's no
       change, exit without doing a build
-f  : Follow the build progress. Like -s only interrupts are not passed
       through to the build.
-p  : Specify the build parameters in the key=value format.
-s  : Wait until the completion/abortion of the command. Interrupts are passed
       through to the build.
-v  : Prints out the console output of the build. Use with -s
-w  : Wait until the start of the command
[root(sunmin06@58OS)@bjm6-193-96 script]# java -jar jenkins-cli.
 

其他:获得历史构建的参数

在命令行执行时,参数我们可能需要历史构建的参数
 
获取上次构建结果:
curl "http://192.168.111.111:8080/jenkins/view/app/job/JOBNAME/lastBuild/api/xml”
 
然后可以解析结果,可以通过expr在shell中解析,获得需要的参数,例如获得tag:
expr "$result" : '.*<name>tag</name><value>\([a-zA-Z0-9_-]*\)</value></parameter>'
 
说明:$result为请求上次构建的结果,tag这里匹配的是字母数字和下划线中横线
 
 
更多获取构建结果的文章参考:http://blog.csdn.net/ljj_9/article/details/70270977

命令行执行jenkins,构建job(可传递参数)的更多相关文章

  1. 命令行执行php脚本 中$argv和$argc

    在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚 ...

  2. 使用命令行执行jmeter的方法

    1. 简介 使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资 本文介绍windows下以命令行模式运行的方法. 1.1. 命令介绍 jmeter -n -t & ...

  3. gradlew 命令行 build 调试 构建错误 Manifest merger failed MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. gocommand:一个跨平台的golang命令行执行package

    最近在做一个项目的时候,需要使用golang来调用操作系统中的命令行,来执行shell命令或者直接调用第三方程序,这其中自然就用到了golang自带的exec.Command. 但是如果直接使用原生e ...

  5. nodejs命令行执行时带参数

    nodejs命令行执行时带参数 转 https://www.jianshu.com/p/474e6d76f867   今天项目里突然想在初始化时跑一些数据,于是想起以前在python时可以在命令行里带 ...

  6. 命令行执行php脚本中的$argv和$argc配置方法

    在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚 ...

  7. linux命令行执行db2存储过程

    存储过程代码如下: CREATE PROCEDURE proc_sum2(IN n INT,OUT sum INT,OUT j INT) BEGIN DECLARE i INT; ; ; ; WHIL ...

  8. mysql命令行执行外部文件

    mysql命令行执行外部文件

  9. android程序中使用命令行及获得命令行执行后的内容

    在开发android项目中,需要在程序中使用命令行执行,获得命令行执行后的结果并做处理. 下面是自己写的一个小例子,供以后参考使用: public String android_command(){ ...

随机推荐

  1. python 读取grib \grib2

    一.环境准备(1).python3环境 (2).wgirb工具(用于读取grib1文件),下载地址:  ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib (3).wgi ...

  2. 【函数】SAS宏的特殊字符引用【转载】

    原文地址  :  http://blog.chinaunix.net/uid-675476-id-2076827.html 在SAS宏中,字符串是用双引号括起来的,但如果字符串中要包含双引号或百分号等 ...

  3. c# 和 java <转载>http://www.cnblogs.com/zhucai/archive/2011/02/16/csharp-compare-java.html

    从语法层面来讲,c# 和 java 是非常相似的. <转载> 这篇文章对C#与Java做一个语言级的对比,方便C#转Java或Java转C#的人有个大致了解.这里大致用C#3.0与Java ...

  4. 1. 在config.ini文件中加入dm.park.time=1,会使uap中的tomcat启动加快

    在config.ini文件中加入dm.park.time=1,会使uap中的tomcat启动加快

  5. flex学习笔记-日历选择与显示

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  6. win8换win7的操作方法

    详细参考UEFI与 Legacy BIOS两种启动模式详解  BIOS的两种引导模式 win8更换win7的方法的两个步骤:    (1).设置BIOS支持Legacy启动,具体目标就是设置secur ...

  7. 【Source Insight 】之marco学习笔记1

    我们学习编程语言都是从Hello World!,现在我们学习marco也不例外 打开C:\Users\%USERPROFILE%\Documents\Source Insight 4.0\Projec ...

  8. delphi java 日期 转换 获取Unix时间戳

    获取Unix时间戳 http://www.cnblogs.com/findumars/p/4716753.html 最简单准确一句话 Result:=IntToStr(  DateTimeToUnix ...

  9. day04-运算符

    Python语言支持以下类型的运算符: 算术运算符比较运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符 算术运算符 运算符 描述 实例 + 加 - 两个对象相加 10+20输出结果 30 - 减 ...

  10. binlog开启和查看

    1. 首先需要将mysql的binlog日志打开.默认是关闭的. 参考网址:Windows下Mysql5.7开启binlog步骤及注意事项(https://www.cnblogs.com/wangwu ...