命令行执行jenkins,构建job(可传递参数)

背景| 组内做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([email protected])@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

时间: 2024-11-09 07:48:47

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

jmeter命令行执行脚本

为什么要命令行执行脚本: 1.图形化界面消耗更多资源,CPU和内存 2.图形化界面不支持大型的负载测试和性能测试 3.命令行测试支持持续集成,例如放到Jenkins这样的CI工具上 nohup:让程序在后台运行 -h:帮助,打印出有用的信息并退出 -n:以非GUI形式运行Jmeter -t:Jmeter脚本路径 -l:输出结果路径,如果没有该文件就自动创建,可以生成csv或者jtl文件 -r:远程执行,启动远程服务 -H:代理主机,设置Jmeter使用的代理主机 -P:代理端口,设置Jmeter

PHP下的命令行执行

PHP 的命令行模式 以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [options] [-f] <file> [args...] php [options] -r <code> [args...] php [options] [-- args...] -s Display colour syntax highlighted source. -w Display sourc

SylixOS下Shell命令行执行模块内函数

1. 适用范围 本文档介绍了在Shell命令行执行内核模块内函数实现原理.   在VxWorks中,系统自带有在Shell命令行直接执行驱动.应用内函数的功能,此功能完善了驱动开发工程师.应用开发工程师的开发.调试的手段.为了让这类工程师能快速适应SylixOS,据此开发了类似的功能模块,目前第一版支持在Shell命令行执行内核模块内的函数. 2. SylixOS内核模块动态加载原理 2.1 SylixOS中的ELF文件 SylixOS中的ELF文件主要有三种: - obj文件: 一个源文件编译

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

在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚本了,但是怎么传递参数呢?那就要用到$argv和$aegc了.不用开启什么设置 直接在脚本中使用,类似于http传值中的$_POST和$_GET..在index.php插入以下菜吗 <?php echo $argv[0]; echo "\n"; var_dump($argv[1]);

编码用命令行执行的C语言词语统计程序

需求介绍 程序处理用户需求的模式为: wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数与程序交互,需实现的功能如下: 1.基本功能 支持 -c  统计文件字符数 支持 -w 统计文件单词数 支持 -l  统计文件总行数 2.拓展功能 支持 -a 返回高级选项(代码行 空行 注释行) 支持 -s 递归处理符合条件的文件 3.高级功能 支持 -x 程序以图形界面与用户交互 [filename] 是待处理文件名. 设计历程及感想 初次看到这个题目,

命令行执行python模块时提示包找不到的问题

庄稼人不是专职python开发的道友,虽然与python相识已多年,可惜相识不相知,只是偶尔借助pydev写一些简单的小工具. 多年来,一直困惑于这样一个问题:同样的工程,同样的代码,使用pydev可以运行任意一个python脚本,而使用命令行运行却不行?命令行下(或者双击执行)总是提示"ImportError: No module named xxx"?pydev究竟做了什么魔术呢? 长话短说,以上面工程为例,如果是在命令行中直接执行 python c.py , 都会提示"

IT忍者神龟之命令行执行java程序

第一:简单的命令行(没有package) c:/temp/bin/GetGreeting.java [java] view plaincopy public class GetGreeting { public static void main(String [] args) { System.out.println("Hello world"); } } 1.编译:cmd--cd到c:/temp/bin  javac GetGreeting.java 生成GetGreeting.cl

java工程打成jar包在命令行执行运行缓慢问题解决

一个普通的java工程,用cxf连接webserivice.在eclipse下运行正常,但用eclipse达成jar包,在命令行执行却异常缓慢. 通过一些尝试,发现是因为打包的方式不对.eclipse导出可运行jar包有三种方式,分别为: 1.Extract required libraries into generated JAR 2.Package required libraries into generated JAR 3.Copy required libraries into  a

关于jmeter命令行执行.jmx文件出现Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class的问题

jmeter命令行执行.jmx文件时,有时回出现Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class的错误 目前出现此错误的原因是在jmeter3.0及以下版本存在bug 对于使用UI界面生成.jmx时,请在testplan层做保存,而非在threads层做保存,如下图