Hello StackOverflow人员,我正在开发一个涉及CI与Jenkins,git,rsync的项目,所以我试图找到一种方法来自动生成每个成功部署的标签版本。形式vX.X.X
我的问题是,是否有任何可用于此的工具,或者您必须手动执行此操作(bash,grunt等)?
这样你就可以在Jenkins上调用它,它会告诉你标记你的建筑物。 我正在考虑在每个文件夹中存放文件并释放/。然后我可以解析一些文件(bash脚本,grunt等)以了解我正确的版本,以便我可以这样做:
我确定有很多选项请分享:D
编辑:我正在寻找像
这样的东西git tag --semantic--versioning --ma 0 --mi 0 --p 3
这样当你输入
时git describe
你会得到像
这样的东西v0.0.3
这样你可以在Jenkins参数化构建中使用另一个工具
答案 0 :(得分:0)
如果我理解正确,你的代码库有一些版本信息,你正在寻找的是一种简化版本字符串工作的方法;能够解析它并递增/递减它,然后从中制作git标签。如果您可以自己调用git tag
,那么您只需要处理版本字符串。为此,我在Perl中使用了“Version”模块:
http://search.cpan.org/~bdfoy/Perl-Version-1.013/lib/Perl/Version.pm
它基本上允许您从字符串构造一个版本对象(可以是多种格式),并提供操作和访问版本或部分版本的函数。您可以使用perl -e
在Jenkins作业中直接使用此作业,或者如果您希望重复使用它们,则可以创建脚本。一个简单的例子,它使用perl递增次要版本并从中生成一个标记:
#!/usr/bin/env bash
oldversion="v1.2.1"
newversion=$(perl -MPerl::Version -e "my \$ver = Perl::Version->new(\"${oldversion}\"); \$ver->increment(1); print \"\$ver\"");
echo "Tagging with ${newversion}"
git tag "${newversion}"
这将获取v1.2.1
的版本字符串,并将次要值递增以创建v1.3.0
,将其打印到屏幕并制作git标记。请注意,在递增次要值时,补丁部分会自动清零,并保留版本字符串的格式。