2012-03-08 104 views
19

我們正在嘗試使用Git/Github設置自動部署環境。我們有3種不同的環境;本地,測試和生活。當我們在本地添加新功能時,我們首先將文件上傳到測試服務器以測試新創建的功能。如果一切正常,我們將所有文件上傳到現場服務器。但是這個「上傳」過程並不是一個完美的解決方案,因爲我們有時會忘記上傳一些文件。順便說一句,我們也有iPhone和Android的移動應用程序,所以移動可能是我們的第四個環境。使用Git/Github進行部署

我們試圖做的是設置一個自動部署環境。當我們提交新功能測試服務器時,在測試這個新功能之後,我們要將它推送到活動服務器。

測試服務器上可能會有很多提交,但我們希望將特定提交推送到活動服務器。我們無法找到如何應對3-4環境而不是亂碼。我們如何將正確的代碼推送到現場服務器?我們將如何管理我們的測試和現場服務器?有沒有什麼好的資源可以告訴你如何用Git/Github建立不同的環境和部署過程?有沒有什麼文章可以告訴我們一步一步做什麼?

我讀過這些文章,但沒有一篇告訴我們如何應對本地,測試和現場環境。

編輯2012-03-09:我發現http://beanstalkapp.com/http://springloops.com,他們似乎都在部署非常好。我不確定我是否可以信任這些服務,但他們都完全按照我的意願去做。我會測試兩者並在這裏分享我的結果來通知每個人。

+2

Git不是部署工具。有很多工具更適合這個目標。你可以做的是將這些結合在一起。 – Ikke 2012-03-08 14:51:42

+1

我知道Git不是部署工具,但許多開發人員正在使用Git *,這是一種部署工具。我們使用Github來存儲我們的代碼,所以我們認爲使用Git/Github作爲部署工具會很好。 – 2012-03-08 14:54:55

+0

這個問題非常適合於[服務器故障](http://serverfault.com) - 例如[this](http://serverfault.com/q/142729/105371)問題(在那裏很多類似的問題之一) )。 – 2012-03-08 14:57:09

回答

8

我終於找到了我一直在尋找。 http://beanstalkapp.com似乎是最好的選擇。它具有自動部署功能並支持Git。經過一個星期的測試,我可以說它運行非常穩定和快速。謝謝大家幫助我,並試圖讓我看到方式。

+0

看起來人們可以在30天內免費試用最昂貴的免費計劃。 – 2013-12-04 04:20:17

4

這聽起來像你需要一個Continuous Integration系統。我與JenkinsWebistrano都取得了巨大成功。

關於「我們應該複製哪些文件?」問題。你還在使用git標籤嗎?如果沒有,開始使用它們!

2

git是否是正確的選擇,是一個很好的問題。

但是,如果你打算這樣做,你應該通讀gitworkflows手冊頁。具體來說,它會推薦什麼以及聽起來正確,因爲您需要將每個單獨的「事物」開發爲主題/功能分支,然後在完成後將該分支合併到正確的樹中。這可以讓你將事情分離出來,這樣你就可以將需要的和穩定的合併起來,不合並不需要的東西。

0

我目前正在以這種方式使用git,並且剛發佈了一篇關於here的博客文章。

我通常所做的是使用post-receive鉤子來查找推送到發佈分支中的提交,並在找到時使用git archive命令部署代碼庫。

如果你有多個開發人員在一個項目上工作,或者它是一個龐大而複雜的代碼庫,那麼對於小型項目來說,這是很好的。我建議像之前的評論中建議的那樣使用Jenkins這樣的持續集成系統。

有一個看看這個,看看它是否適合你的需要(包括一個簡單的bash部署腳本)

乾杯

2

我最終創建了自己的基本部署工具,它會自動從回購中拉下新的更新 - https://github.com/jesalg/SlimJim - 我不認爲它完全適合您的需求,但您可以閱讀它的設置方式,也許你可能會得到一些它的想法。