Hudson-参数化构建
来源:互联网 发布:变声的视频软件 编辑:程序博客网 时间:2024/06/11 00:39
原文链接:http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Build
有些时候让你的构建包含几个“参数”是非常有用的。考虑下面的情况:
你在Hudson内建立了一个测试Job,它允许发布包作为一个参数绑定到Job中,并针对这个发布包测试。你希望所有的开发人员在本地构建,然后提交构建,最后在Hudson内测试。这种情况下,你的参数就是一个包含发布包的zip文件。
你的测试套件全部运行需要很长的时间,通常你不需要执行整个的测试周期。所以你希望执行部分测试,这种情况下你的参数会是一个字符串,用来控制执行测试套件的哪部分。
参数可以作为一个环境变量使用,举例来说,在Shell中是($FOO, %FOO%)
或者在Ant中是(${env.FOO})
,都能访问到参数的值。
1. 定义参数
首先,你需要在你的Job配置里选上“This build is parameterized”,然后再按钮的下拉菜单中选择你需要的参数。
图 1. 参数定义
有多种参数类型可供使用,并且是可以扩展的。参数的生效方式也有所不同,这取决于你的依赖的参数类型。
1.1. 字符串参数
字符串参数会被作为一个同名的变量加入到环境变量中。所以像Ant和Shell这样的构建器可以使用这个参数。继续上面的例子,下面是一个简单的例子:
在构建器中使用名字引用参数。使用“env”命令可以列出环境变量,然后用“echo”命令演示如何引用参数:
图 2. 参数使用
运行这个构建观察log输出(为了安全和简洁,我省略了一些变量输出):
started
[workspace] $ /bin/sh -xe /opt/apache-tomcat-6.0.14/temp/hudson20854.sh
+ env
BAR=bat
...
[workspace] $ /bin/sh -xe /opt/apache-tomcat-6.0.14/temp/hudson20855.sh
+ echo the value of bar is bat
the value of bar is bat
finished: SUCCESS
Ant同样可用,比如使用Ant的属性选择功能,定义一个构建属性:
my.prop=${env.BAR}
注意在Windows和Unix不同环境下大小写是敏感的,所有的来自参数的环境变量都要用大写。
1.2. 文件参数
文件参数允许构建接受一个文件,是当计划一个新构建时由用户提交的。在check-out/update之后文件会放置在workspace下,你的构建脚本可以使用这个文件。
2. 自定义参数类型
有个插件可以定制参数类型。请查看参数定义。
3. 通过参数启动构建
参数是区分大小写的!
当通过URL传递参数时,大小写很重要!例如,token=TOKEN&MESSAGE=yo
将不会使定义的参数Message
生效。
可以通过一个URL就能启动构建
http://server/job/myjob/buildWithParameters?PARAMETER=Value
要想用wget,你需要把URL用引号引起来。
显然,参数delay=0sec
能够被使用。
如果你使用一个授权token来触发构建(Job → Configure → Build Triggers → Trigger builds remotely),你可以访问:
http://server/job/myjob/buildWithParameters?token=TOKEN/&PARAMETER=Value
注意/&
4. 局限性
当前需要知道下面的问题:
当使用构建触发器开始一个构建时,它无法知道如何传递参数,这包括SCM轮询,下游构建和周期构建。这时会使用默认值代替,包括字符串型、布尔型和选择型参数。
5. 未解决问题
如何传递配置参数给Maven构建?比如,我已经有一个Maven构建和一个指定的配置,但必须让Hudson以字符串参数的形式传递给他。
- Hudson-参数化构建
- Hudson – 构建
- Hudson分布式构建
- Hudson分布式构建
- Hudson - 构建一个Maven2项目
- 搭建Hudson分布式构建环境
- 搭建Hudson分布式构建环境
- Hudson:一款持续构建工具
- Hudson--一个使用简单的构建系统
- 利用Hudson构建c/c++持续集成
- hudson分布式构建step by step
- 利用Hudson构建Php持续集成
- hudson(jenkins)任务设置一天多次构建
- hudson的周期性自动构建规则
- Hudson项目构建成功的方法
- git+jenkins/hudson+python构建环境
- hudson的周期性自动构建规则
- hudson 构建maven项目软件包找不到
- SSDT-hook,IDT-hook原理
- 时间复杂度计算
- 项目1自述
- 521
- 对结构型设计模式的理解
- Hudson-参数化构建
- [OS] PV操作
- C++容器
- HDU_2222 关键字查找(AC自动机应用)...
- A标签的css样式
- 使用Struts标签输出二维数组
- sqlite的介绍
- VS2008中自动加载word
- 最短路径算法