我們正在使用TeamCity服務器和OctoPack構建多個部署環境的軟件包。問題在於觸手代理選擇包的最新版本,因此它是在所有環境中部署的相同(最新)包。以下是我們的設置摘要:如何讓Octopus部署在多個環境中選擇軟件包版本?
- 環境DEV和STAGE;
- 部署到DEV是從Git「dev」分支觸發的;
- 部署到STAGE從Git「stage」分支觸發;
- OctoPack被配置爲爲DEV構建配置生成軟件包MyProduct.1.0.0.dev-%build_counter%;
- OctoPack配置爲生成包MyProduct.1.0.0。%build_counter%用於STAGE生成配置;
- TeamCity配置爲通過其NuGet提要公開OctoPack人工製品(NuGet包);
- Octopus項目被配置爲從TeamCity NuGet源中使用NuGet Id MyProduct部署包。
那麼會發生什麼呢,因爲DEV構建運行得更頻繁,它們有更大的%build_counter%,並且STAGE沒有機會獲得它自己的包的部署 - Octopus觸手優先與1.0包。 0.dev- *後綴。
這必須是相當普遍的情況,但我還沒有找到一個簡單的方法來解決它。
我猜你的意思是「TeamCity的配置產生pacakges」而不是章魚?其他一些提示:爲STAGE和DEV(以及MASTER)使用不同的版本號,這將使得從長遠來看更容易維護。例如,在我們的開發版本中,版本號是0.0.0.x,在master中我們有1.0.0.x.我認爲最正確的版本是將dev設置爲2.0.0.x,並將master設置爲1.0.0.x,並且當dev準備好發佈併合併到master master時,版本會增加到2.0.0.x和dev到3.0.0.x.你可以把它想象成開發者是未來,而主人就是現在所掌握的東西。 –