安装插件
首先需要安装
Git Parameter Plug-in插件,用来配置Git相关构建参数。
打开
首页 -> 系统管理 -> 管理插件,进入插件管理页面。切换到可选插件页,搜索git parameter即可找到插件,点击直接安装:
安装完成后需要重启
Jenkins,在浏览器中访问:http://xxx.xxx.xxx.xxx:8080/restart,确认重启即可。添加构建参数
进入到我们的Android项目,选择
配置进入设置页面,在General设置区勾选参数化构建过程,即可添加构建参数:
可以看到有以下几种参数:
| 参数类型 | 描述 |
|---|---|
| Boolean Value | 布尔型参数 |
| Choice | 选择型参数 |
| Credentials Parameter | 认证参数 |
| File Parameter | 文件参数 |
| Git Parameter | Git参数 |
| Multi-line String Parameter | 多行字符串参数 |
| Password Parameter | 密码参数 |
| Run Parameter | 运行参数 |
| String Parameter | 字符串参数 |
其中
Git参数是需要安装了Git Parameter Plug-in才能设置的参数。布尔参数
布尔参数最简单,
name为参数名称,Default Value设置是否默认选中(true),Description添加描述信息:
构建时显示效果如下:

选择型参数
选择型参数在列出的多个选项中选择一个,
Choices中列出多个选项,每行一个选项,其中第一行为默认选项
构建时显示效果为:

认证参数
认证参数用来设置认证信息,
Credential type用来选择认证的类型,包括ssh认证、用户名/密码认证等多种认证类型;Default Value设置默认认证信息,通过后面的Add按钮还可以新增认证信息。
构建时显示效果:

文件参数
文件参数用来上传文件到工作空间,
File location用来设置上传的文件保存的位置,这里需要使用相对于工作空间根目录的相对路径。
构建时显示效果:

Git参数
Git参数用来配置构建目标。
Parameter Type用来选择参数类型:| 类型 | 说明 |
|---|---|
| Tag | 列出所有tag |
| Branch | 列出所有分支 |
| Branch or Tag | 列出所有分支和tag |
| Revision | 可以让用户选择构建的revision |
Branch用来设置分支,这个设置只有在Parameter Type设置为Revision时,才有效,用户可以选择指定分支的revision。Branch Filter使用正则表达式来过滤分支的显示,为空时过滤器默认为".*"。Tag Filter用来过滤tag,为空时默认为"*"。Sort Mode用来设置排序方式,分为:none(不过滤)、descending(降序)、ascending(升序)、acending smart(智能升序)、descending smart(智能降序)。Default Value用来设置默认值,如果分支或tag等的列表获取为空,则采用设置的默认值。Selected Value设置选中的值,分为:NONE(不选中)、TOP(选中最上项)、DEFAULT(选中默认项);如果选择了 DEFAULT且上面一项Default Value没有设置,则默认不会选中任一项。Use repository用正则表达式指定使用哪个代码仓库。Quick Filter勾选时,会在构建页面显示一个用来过滤的文本框,用户可输入文本在列表中显示的分支、tag等列表中过滤。
设置图及构建效果图如下:


多行字符串参数
这个也比较简单,用来输入多行字符串,可以设置默认值:


密码参数
比较简单,可用来输入密码,可以设置默认密码:


运行参数
指定其他构建任务的某一构建历史,具体作用还没搞清楚。TODO
字符串参数
这个类似与多行文本参数,不同的是这里只能输入单行文本
使用构建参数
使用Git参数构建指定版本
我们可以在构建时使用指定的分支、tag、revision来构建当前项目:
在项目设置里,切换到
源码管理区,设置Branch Specifier属性为添加的git参数:${git_params}
我们新建
branch_jenkins分支用来测试:$ git checkout -b branch_jenkins
在新分支中
app/build.gradle构建脚本中增加如下打印信息:android {
...
println "this is jenkins test!!!"
}
在
参数化构建页面,选择分支为branch_jenkins:
查看构建输出:
[Gradle] - Launching build.
[android] $ /var/lib/jenkins/workspace/android/gradlew -Pmulti_params=这里用来输入多行文本。
默认文本可修改。
over。 -Pgit_params=origin/branch_jenkins "-Ptest_string_p=this is a default value" -Pchoice_type_color=red ******** -Pbool_type=true -Pupload/data.zip= ******** clean assemble
this is jenkins test!!!
可以看到打印输出了我们的测试信息,说明构建的是我们选择的branch_jenkins分支
指定Gradle任务
增加
字符串参数:gradle_tasks,设置默认值clean assemble:
在
构建设置区中,指定Tasks属性为:${gradle_tasks}
在参数化构建页面,修改
gradle_tasks参数值为tasks:
点击开始构建,查看构建输出:
[Gradle] - Launching build.
[android] $ /var/lib/jenkins/workspace/android/gradlew -Pmulti_params=这里用来输入多行文本。
默认文本可修改。
over。 -Pgit_params=origin/develop "-Ptest_string_p=this is a default value" -Pchoice_type_color=red -Pgradle_tasks=tasks ******** -Pbool_type=true -Pupload/data.zip= ******** tasks
Incremental java compilation is an incubating feature.
:tasks
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
Android tasks
-------------
androidDependencies - Displays the Android dependencies of the project.
signingReport - Displays the signing info for each variant.
sourceSets - Prints out all the source sets defined in this project.
......
环境变量
在参数化构建过程中,设置的参数,除了
文件参数及运行参数,其他几种类型参数都会被设置为同名环境变量;文件参数用来上传文件到工作空间已供构建过程使用;运行参数会设置多个环境变量,譬如参数名称PARAMETER_NAME的运行参数会设置以下环境变量:PARAMETER_NAME=<jenkins_url>/job/<job_name>/<run_number>/
PARAMETER_NAME_JOBNAME=<job_name>
PARAMETER_NAME_NUMBER=<run_number>
PARAMETER_NAME_NAME=<display_name>
PARAMETER_NAME_RESULT=<run_result>
在Android项目中打开设置页面,找到
构建区,添加构建步骤执行脚本,添加脚本命令env,打印环境变量:
打开
参数化构建,修改参数值,选择开始构建:
查看构建过程命令行输出:
[android] $ /bin/sh -xe /tmp/hudson9052812477166736119.sh
+ env
......
bool_type=false
credentials_type=ed7068da-a15e-415e-8060-846952c2f503
pwd_params=88888888
git_params=origin/master
test_string_p=单行文本参数
choice_type_color=green
multi_params=这里用来输入多行文本
默认文本可修改
结束
run_params=http://xxx.xxx.xxx.xxx:8080/job/android/18/
run_params_JOBNAME=android
run_params_NUMBER=18
run_params_NAME=#18
run_params_RESULT=SUCCESS
......
Archiving artifacts
Finished: SUCCESS
构建脚本即可通过环境变量来访问这些设置参数。
Gradle构建参数
Java系统属性
执行Gradle构建任务时,部分设置的参数会添加到Gradle构建命令中,作为
Java系统属性,使用-D标识:[Gradle] - Launching build.
[android] $ /var/lib/jenkins/workspace/android/gradlew -Dmulti_params=这里用来输入多行文本~~
默认文本可修改~~~ -Dgit_params=origin/master "-Dtest_string_p=单行文本参数" -Dchoice_type_color=green ******** -Dbool_type=false -Dupload/data.zip=usercmd ******** clean assemble
Gradle属性
在Android任务设置页面,切换到
构建设置区:
添加
Invoke Gradle script构建步骤时,如果勾选了Pass job parameters as Gradle properties选项,则设置的参数会以Gradle属性的方式添加到构建命令中,使用-P标识:[Gradle] - Launching build.
[android] $ /var/lib/jenkins/workspace/android/gradlew -Pmulti_params=这里用来输入多行文本~~
默认文本可修改~~~ -Pgit_params=origin/master "-Ptest_string_p=单行文本参数" -Pchoice_type_color=green ******** -Pbool_type=false -Pupload/data.zip=usercmd ******** clean assemble










