2017-08-26 32 views
1

我试图让下面的安装在我的系统跟踪的程序与版本一起集结号

  1. 使Node.js应用
  2. 詹金斯管道

我公司将运行喜欢以以下格式开始跟踪nodejs应用中的版本更改

x.x.x.BUILD_NUMBERx.x.x+BUILD_NUMBER

我知道生成前三位可以通过运行像npm release patch这样简单的东西来处理node.js,但是如何开始跟踪内部版本号?内部版本号只有在提交完成并且应用程序在jenkins中运行后才会生成。

我正在考虑两种方法来做到这一点 - 这两种方式似乎都有自己的缺点。想知道是否有更好的方法来处理这个问题。

  1. 在我package.json文件 - 还跟踪喜欢的版本号低于

    的{ “版本”: “0.7.10”, “建”: “1” }

    git commit - 增加一个提交后的钩子来增加内部版本号。在这种情况下,Jenkins没有完成任何版本跟踪。有没有可能由jenkins生成的递增构建编号可能与node.js跟踪的构建编号不同?

  2. 一旦构建运行并由Jenkins生成 - 在发布成功/失败时运行脚本以将内部版本号包含在package.json文件中。提交并推送到git repo - 这意味着这是在回购协议上不必要的额外提交。

除了上述,有没有一种更简单的方法来开始跟踪这种设置中的内部编号?

回答

0

我认为没有一个最佳的解决方案来完成你所要求的。而不是将源代码放在源代码管理中,也许你可以1)让jenkins永远生成,因为有一个内部版本号的记录,你也可以登录应用程序的xxx版本,或者2)你可以包含构建版本编号生成的工件中的编号(如果您推送到artifactory或nexus或docker注册表等)。

如果您必须在源代码管理中拥有内部版本号,那么您可能希望执行后构建提交,但正如您所说,这将导致对每个构建额外提交,并且默认情况下这些提交反过来会导致构建。然后你会想要抑制这些提交的构建,所以这是用这种方法解决的另一个问题。