2012-08-15 99 views
0

我想弄清楚如何使用腳本自動執行此過程。使用shell腳本來自動化git提交和ssh apache服務器部署?

我不知道我會用什麼,或如何去做。我期待着指出正確的方向。

在混帳:

git commit -am "my commit" 
git pull origin my_branch 
git push origin my_branch 
git archive --format zip --output /c/git/(environment)_(date)_(commithash).zip my_branch 
scp (environment)_(date)_(hash).zip [email protected]:/var/www/html-(domain) 
password123 

在阿帕奇:(通常我膩子...)

root 
password123 
cd /var/www/html-(domain)/(environment) 
unzip ../(environment)_(date)_(commithash).zip 
n 
n 
A 
cd .. 
cp -pr (environment) (environment)_(date)_(commithash) 
exit 

爲了解釋怎麼回事,我推着我的最新承諾, SCP到Apache服務器docroot,部署和使用提交散列進行備份。

+0

你不想要sh,你想要make。 – 2012-08-15 18:09:41

+0

看看[期望](http://www.nist.gov/el/msid/expect.cfm),它可以輕鬆地爲您自動執行重複任務。 – twmb 2012-08-15 21:40:15

回答

1

您可以使用一個shell腳本,你打算 - 只需保存你想運行在一個文件中(每行一個),在頂部加入#!/bin/bash的命令,與chmod +x myscript.sh(該.sh文件擴展使其可執行不需要),然後用./myscript.sh運行它。

您可能會發現使用特別有助於部署的腳手架更容易。這些使用shell腳本的系統(我還沒有嘗試過)的外觀好看的是deliver

+0

您可以創建與Windows等效的Powershell腳本。我找到了[使用Powershell部署]的示例(http://www.codeproject.com/Articles/16768/Deployment-made-simple-using-Powershell),但是您的里程可能會有所不同。 – supervacuo 2012-08-15 18:23:57

1

您正在邁向Continuous Integration的第一步。

我用Jenkins這是我設置的話:

  • 的git拉出身主
  • 運行單元測試
  • 部署代碼
  • 運行數據庫部署
  • 更新售票系統,成功/失敗

有很多o f擴展和工具,以及任何語言,等等。