2016-08-23 59 views
1

我的當前設置是我在我的VPS中將我的git裸存儲庫設置爲staging在部署Docker之前運行測試的最佳方式是什麼?

所以,當我這樣做:

git push staging staging 

我重新運行我的安裝目錄泊塢窗指的是混帳workdirs。

現在,我想在Docker中添加運行測試,如果失敗了,請回滾到之前的(工作)提交。 [1]

什麼是做[1]

我目前的鉤看起來像這樣的最佳方式:

$worktree = /my/work/directory 
$gitdir = /my/repo/dir.git 
$containername = mycontainer 
git --work-tree=$worktree --git-dir=$gitdir checkout staging -f 
cd $worktree 
docker stop $containername || true 
docker kill $containername || true 
docker rm $containername || true 
docker run -d -p $port1:$port2 --name $containername -v $worktree:/root/src -it $imagename bash -c $runscript 

回答

2

(可能不會直接回答你的問題,但有不同的方法,你不需要重新發明輪子)

我做了Kitchen test,它可以啓動一個新的測試實例,它可以是vmware,ec2實例等,它可以是不同的驅動程序(vagrant,ec2,碼頭等,當然,你不能在碼頭測試碼頭),你可以運行完全相同的代碼來自動驗證。

這裏是Getting started guide

如果一切都正確設置,一個命令kitchen test運行所有部署,測試和直接摧毀實例。

測試用例使用serverspec,您可以方便地測試實例中運行,端口監聽等有關的測試案例的細節,請參考serverspec resource types

您也可以手動以下步驟獲得故障排除步驟 - 運行通過步驟

kitchen test = kitchen create + kitchen converge + kitchen verify + kitchen destroy