2012-12-07 45 views
2

我想縮短部署到Heroku的過程(即混帳推)使用面料部署當前的Git分支的Heroku

我使用git-流程來組織我的代碼庫 - 因此通常的過程是:

  1. 開始一個新的特性分支
  2. 執行編碼
  3. 推這個分支與我的dev Heroku的實例 - git push develop feature/somefeature:master
  4. 合併到develop分支
  5. 創建一個新的發佈分支
  6. 按下此生產Heroku的實例 - git push production release/1.2.3:master

我希望做的是能夠像運行的Fab命令:

fab dev_deploy

這將只是部署任何當前工作分支是我的開發實例

fab prod_deploy

它會做相同的,但推到生產實例。 我可能包括一些健全檢查這裏以確保我發佈分支內等

我晶圓廠命令會做其他的事情(如推靜態資產達權S3桶等,跑南部遷移命令等)

所以我真正想知道的是如何將當前工作分支作爲織物內部的變量...!?

感謝,

蓋伊

回答

10

OK - 多一點挖了我:

from fabric.api import local 
my_branch = local('git rev-parse --abbrev-ref HEAD', capture=True) 

這不正是我想要的。

1
import subprocess 
my_branch = subprocess.check_output(['git','branch']) 

或:

from fabric.api import local 
my_branch = local('git branch') 
+0

這兩個都運行常規的'git分支'命令 - 它返回一個本地分支的列表,當前分支用asterix表示 - 是否沒有命令獲取當前分支以供後續處理?或者我必須得到這個列表並使用一些正則表達式來獲取當前分支。 –

+0

正則表達式或類似'branches.split('*')'或者你喜歡切分字符串:) –