2016-09-23 60 views
1

我有3個階段(dev/staging/production)。我已經成功地爲每個設置了發佈,以便使用msbuild將代碼部署到正確的位置,使用正確的Web配置進行轉換 - 所有這些都在Jenkins中完成。使用Jenkins部署到生產服務器

我遇到的問題是,我不知道如何部署代碼,以便從構建在dev上的內容中進行分段(以及分段到生產)。我目前使用SVN作爲源代碼控制,所以我想我需要以某種方式保存開發者創建的最新修訂版本號,並以某種方式告訴Jenkins基於該編號構建/部署分段版本?

有沒有辦法做到這一點,或更好的選擇?

任何幫助,將不勝感激。

編輯:決定用保存版本號的方法,該方法解析包含版本號到下一個工作文件 - 要做到這一點,我也跟着這樣的回答:

How to promote a specific build number from another job in Jenkins?

它解釋如何使用促銷插件將工件從一個工作複製到另一個工作。對於工件本身,我添加了一個「執行Windows批處理命令」生成步驟主構建後:

回波DEV_ENVIRONMENT_CORE_REVISION:%SVN_REVISION%> env.properties

然後,在分段作業,使用上述導,複製該文件,然後使用插件EnvInject從該文件讀取並設置一個環境變量,然後將其用作SVN Repository URL的參數。

回答

0

您應該能夠識別DEV中構建的變更集編號,並手動將該變更集傳遞給Jenkins構建,以便從SVN中提取相同的變更集。顯然,這使得您的部署更加手動。也許你可以設置Jenkins將變更集編號發佈到一個文件中,然後讓後來的env編譯爲變更集編號讀取該文件。

我們也習慣使用這個模型,它總是很複雜。最後,我們轉向構建一次,並使用WebDeploy部署多次模型。這使得這個過程變得更加簡單。檢查出來 - http://www.dotnetcatch.com/2016/04/16/msbuild-once-msdeploy-many-times/

+0

你有關於你的「一次和多次部署」過程的更詳細的博客文章?不確定: 1.打包和部署到不同的環境是否正確使用發佈文件? 2.包裝似乎只適用於項目級別,所以當我的解決方案需要發佈4個項目時,這變得非常痛苦。 –

+0

您需要設置一個發佈協調工具來適當地應用這個軟件包。我們使用Thoughtworks GO!目前,VSTS還有一些非常不錯的功能。我們有50個管道在GO!每個都有多個可部署組件(ASP.NET站點,SQL Server數據庫,Window服務等),它的工作效果很好。以下文章是對我們如何創建部署包的高級概述。我的博客也有更多具體的例子。 - http://www.dotnetcatch.com/2015/04/22/extending-msdeploy-beyond-the-web/ – chief7

相關問題