在buildout中配置Hudson并将其推送
项目描述
详细文档
此配方将渲染您的Hudson配置文件并将其推送到网站。
Hudson支持的选项
该配方支持以下选项
- host (必需)
Hudson实例的主机名。
- jobname (必需)
要在Hudson上创建的工作/项目的名称。
- template (此包包含默认模板)
将用于配置Hudson工作的模板 config.xml。
- port (80)
要在Hudson上创建的工作/项目的端口。
- username (None)
对于基本认证,指定用户名。
- password (None)
对于基本认证,指定密码。
- config_name (hudson_config.xml)
将发送到Hudson的生成配置文件的名称。
配置模板(config.xml)支持的变量
- description
此描述放置在项目首页上,以便访客了解此工作的情况。您可以使用任何HTML标签。
- svn
URL和签出目录名称的配对
- git
签出的URL
- poll_scm
此字段遵循cron的语法(略有不同)。具体来说,每一行由5个字段组成,字段之间由制表符或空白字符分隔:分钟 小时 月 日 星期 分钟 小时内的分钟数(0-59) 小时 一天中的小时数(0-23) 月 月份(1-12) 日 星期(0-7)其中0和7代表星期日。要指定一个字段的多个值,可以使用以下运算符。按照优先级顺序,
‘*’可以用来指定所有有效值。“M-N”可以用来指定范围,例如“1-5” “M-N/X”或“/X”可以用来指定X值的跳过,例如在分钟字段中“/15”对应“0,15,30,45”,以及“1-6/2”对应“1,3,5”。“A,B,…,Z”可以用来指定多个值,例如“0,30”或“1,3,5”。空行和以“#”开头的行将被忽略作为注释。
此外,支持‘@yearly’,‘@annually’,‘@monthly’,‘@weekly’,‘@daily’,‘@midnight’和‘@hourly’。
示例 # 每分钟 * * * * *
- shell
运行用于构建项目的shell脚本(默认为sh,但这是可配置的)。脚本将以工作空间作为当前目录运行。请输入您的shell脚本内容。如果您的shell脚本没有像#!/bin/sh这样的头部行,那么将使用系统范围内配置的shell,但您也可以使用头部行来用另一种语言(如#!/bin/perl)编写脚本或控制shell使用的选项。默认情况下,shell将使用“-ex”选项。因此,在执行之前会打印所有命令,如果任何命令以非零退出代码退出,则构建被视为失败。再次提醒,添加#!/bin/…行可以更改此行为。
作为最佳实践,尽量不要在这里放置长shell脚本。相反,考虑将shell脚本添加到SCM中,并简单地从Hudson(通过bash -ex myscript.sh等方式)调用该shell脚本,这样您就可以跟踪shell脚本的变化。
示例用法
我们首先创建一个使用配方
[add_to_hudson] recipe = collective.recipe.hudsonjob host = hudson.ploneboutique.com jobname = foobar port = 80 username = test password = test template = %(path)s # template vars svn = http:// . description = foobar
这将生成add_to_hudson命令,该命令将您的配置发送到Hudson(位于add_to_hudson构建部分的指定位置)。
因此,运行构建
$ bin/buildout Develop: '/home/ielectric/code/collective.recipe.hudsonjob/.' install_dir /home/ielectric/code/collective.recipe.hudsonjob/develop-eggs/tmpfg_pqRbuild Uninstalling add_to_hudson. Updating test. Installing add_to_hudson. Generated script '/home/ielectric/code/collective.recipe.hudsonjob/bin/add_to_hudson'.
现在我们可以在parts/collective.recipe.hudsonjob/hudson_config.xml中看到我们的配置文件
现在让我们在Hudson中创建一个新的作业
$ bin/add_to_hudson
就这样!您的Hudson有了一个新的项目,您可能需要第一次输入SCM凭据。
模板将在每次运行时由构建渲染。模板使用Genshi进行。
为xml添加模板支持非常简单,欢迎贡献(但不要忘记测试)。
贡献者
“Domen ‘iElectric’ Kožar”,作者
变更历史
0.1 (2010-10-30)
创建初始配方[“iElectric”]