簡體   English   中英

在開發服務器上測試/預覽Github分支

[英]Testing/previewing Github branches on a dev server

我剛從svn轉到github。 我和我的團隊運行本地測試,我們在中央開發服務器上提交更改和測試。 每當我們將更改推送到repos時,我想自動將更改到我的repos的任何分支到我的開發服務器上的文件夾中。 這將使我和我的團隊能夠使用我們的中央開發服務器測試和預覽彼此的代碼。

理想情況下,我可以將子域映射到這些不同的分支目錄。 即如果該分支被稱為“重構”,我可以使用http://refactor.devserver.com進行檢查

我想這可能涉及我的github配置中的一個鈎子,它在dev服務器上觸發了一個腳本? 也許我需要使用像Hudson這樣的ci服務器?

編輯:我可以輕松觸發一個腳本來拉動主分支 - 我需要做的是將任何更改的分支拉到單獨的根文件夾,這樣我就可以通過它自己的子域輕松地測試任何分支。 (或者以某種類似的方式自動部署和測試任何已更改的分支)

非常感謝。

這是我自己的問題答案的一部分......

我希望團隊能夠分叉代碼並立即在這樣的URL上顯示它: http//branch-name.devserver.com

我在apache conf中設置了vhost指令,將子域映射到文件夾:

<VirtualHost *:80>
        ServerName www.devserver.com
        ServerAlias *.devserver.com
        VirtualDocumentRoot /var/www/devserver/%1/
</VirtualHost>

我在github或我的本地機器上分支代碼。
然后在開發服務器上運行這些命令

cd /var/www/devserver
git clone git@github.com:/user-name/repos-name

將克隆的repos文件夾移動到名為分支名稱的文件夾,以使其成為子域虛擬主機的根文件夾。

mv repos-name new-branch

然后將repos從master切換到新分支

cd /var/www/devserver/new-branch
git checkout new-branch

它現在可以在http://new-branch.devserver.com上找到

然后在我將更改推送到github上的分支后 - 我將它們放在開發服務器上

cd /var/www/devserver/new-branch
git pull

現在 - 如果我想讓拉動自動發生,我可以設置一個CI服務器來監聽一個git hub鈎子,它會觸發每個分支文件夾的拉動。 看起來Hudson可以做到這一點。


我希望找到一個更聰明的方法來做到這一點:

  1. 沒有多次克隆回購
  2. 使用單個命令可以有效地更新所有分支,或者使用鈎子,只允許我拉到已更新的分支
  3. 每個分支都有一個像樣的文件夾結構 - 所以我可以測試特定網址上的任何分支,而不必每次分支代碼時都要使用http配置
  4. 可能會自動為新分支創建根文件夾,以便它們可以神奇地出現在開發服務器上

歡迎進一步的想法...

如果您定義了一些自動部署過程,它肯定可以使用Hudson完成。 事實上,我在大約一年前做了類似的設置 - 如果改變被推入大師Hudson進行單元測試並且如果成功部署到舞台上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM