使用Jenkins基于构建参数生成文件

时间:2014-09-30 02:45:39

标签: templates jenkins jenkins-plugins

我想生成一个XML文件,一旦构建完成,我将将其提供给部署工具。 XML文件的模板如下:

<Settings>
    <Version>${BUILD_NUMBER}</Version>
    ..
</Settings>

模板存在于我的项目中(.NET解决方案),用于将项目部署为单击一次应用程序。我试图找出如何让Jenkins将内部版本号推送到模板文件中,然后我可以使用命令行Exec任务将其提供给应用程序。

是否存在能够从模板生成文件的插件?我可以用什么其他途径来完成这项任务?

1 个答案:

答案 0 :(得分:2)

我发现Jinja2很适合这个。它有一些强大的过滤器,但也可以处理基本模板。顺便说一句,Jinja2是Ansible使用的模板机制。

安装Jinja2(假设你有一些python 2.6+工具可用):

pip install Jinja2

easy_install Jinja2

this post,您可以获得Jinja2库的命令行包装器,我将在下面显示:

curl -LO https://bitbucket.org/tebeka/pythonwise/raw/31769f04bac832f8d781827f55ad6cc4d4ef3c07/jj2.py
chmod u+x jj2.py

然后你设置你的jinja模板文件(我们称之为build-descriptor.j2):

<Settings>
    <Version>{{BUILD_NUMBER}}</Version>
    ..
</Settings>

并在Jenkins工作中使用它:

jj2.py -v BUILD_NUMBER=${BUILD_NUMBER} build-descriptor.j2 > build-info.xml