-2

遠程客戶的策略不允許我從我的開發環境直接發佈到他們的服務器。我遠程進入環境並將發佈的工件(Asp.Net-MVC)複製到測試環境。不同環境之間的部署過程(Build/Test/Staging/Production)目前手動完成,耗時且容易出錯。用於接受前提的持續部署方法Asp.Net-MVC

我知道有些工具已經存在,並且看到了一些CI解決方案,但看起來像是我想要的東西過多。看着Jenkins,Octopus,MSDeply,PSDeploy,Robocopy和其他僅舉幾例,但現在我不知道要走哪條路。閱讀我最終希望達到的持續部署方法,因爲我真的試圖避免重新發明輪子並編寫我自己的自定義部署工具,這是一種討厭的習慣,我試圖打破許多帽子,我必須穿。

有關如何在獨立服務器上自動執行此過程的任何建議?在這個階段,重點是文件的移動,而不是數據庫的移植。

感謝

回答

2

CI服務器是,在它的核心,只是一個任務運行。詹金斯是一個很棒的開源CI服務器,有很多插件。

對於簡單的Web部署,您只需拉下源代碼,使用MSBuild執行構建,然後執行deployment using a publish profile

MSDeploy將在引擎蓋下使用,但你可以讓它只是複製文件。構建和部署實際上可以通過傳遞適當的構建參數在一個步驟中完成。

msbuild someproject.sln /p:DeployOnBuild=true /p:PublishProfile=Prod 

詹金斯可以被設置爲按需執行此構建,或每當東西被選中。

即使有人沒有任何經驗,你應該能夠得到這件事,並在一天內運行。

+0

在我的情況下,我在我的環境中構建,然後將其複製到他們的環境中。那麼我是否能夠使用發佈配置文件進行部署,以便在需要時進行測試,分期和製作? – Nkosi

+1

@Nkosi - 在這種情況下,我會看看創建一個發佈包。您將不得不學習一些關於MSDeploy的知識,但它可以讓您創建一個包並將其部署到多個環境中。您甚至可以根據需要覆蓋設置。 – Josh

+0

然後我會把它放在列表中。謝謝。 – Nkosi

0

爲什麼不使用發佈管理?它是一個微軟工具,通過它的模板連接到tfs。 您需要使用構建服務器來創建構建定義,該構建服務器設置爲CI,這意味着每次檢入都會將代碼上傳到發佈管理中所需的環境,您可以創建一個審批步驟,只有經批准的構建將上載。要啓用開發工作並在沒有上傳項目的情況下檢入,只需創建2個分支HEAD和DEV,並將您的ci監聽器(源文件夾)僅放置在HEAD上。當開發人員將從DEV合併到HEAD並簽入時,文件將被上傳。