2017-08-26 34 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註冊表等)。

如果您必須在源代碼管理中擁有內部版本號,那麼您可能希望執行後構建提交,但正如您所說,這將導致對每個構建額外提交,並且默認情況下這些提交反過來會導致構建。然後你會想要抑制這些提交的構建,所以這是用這種方法解決的另一個問題。