簡體   English   中英

良好的Phing工作流程是什么樣的?

[英]What does a good Phing workflow look like?

我正試圖進入CI的心態,本周末一直在和Phing一起玩。 這一切看起來都很直接,並且已經有很多例子。

然而,令我困惑的是人們如何實際使用它。 也就是說,我不是在尋找你做的測試,而是使用Phing建議的工作流程,在什么階段你激活它,在開發周期的哪個階段采取行動。

例如,我們有幾個網站,目前我們在本地編輯源代碼並保存上傳到實際網站(我知道這有多糟糕......),我們做了一些快速測試並確保代碼按計划運行。 如果是這樣,我們承諾回購並繼續進行。 如果沒有,我們可以回滾或編輯撤消和重新保存。 雖然這看起來很瘋狂,但簡單性對我們來說效果很好。

我們現在有一個小團隊,所以我試圖將Phing推入這個過程,以獲得linting / sniffing / mess檢測等所有額外的好處,但是我無法確定事件的最佳順序。

你會建議:

  • 在本地編輯代碼。
  • 在保存時將文件上載到測試站點。
  • 在登台服務器上測試站點。
  • 一切順利,將更改提交到回購。 然后運行phing。
  • 評估Phing的輸出,根據需要更新代碼,重新保存,重新提交,重新運行phing。
  • 假設Phing通過,當我在另一台服務器上運行phing時,執行svn導出並啟動部署過程。

以上似乎有點長啰嗦。 是不是因為看起來我試圖將測試部署與實時部署合並,讓我感到困惑?

此外,它似乎有點倒退,然后運行Phing,然后必須編輯並可能重新提交再次嘗試之前。

因此,它會更有意義:

  • 在本地編輯代碼。
  • 保存,使用Phing執行測試部署構建。
  • 確保代碼已通過所有代碼檢查等
  • 使用Phing確保將代碼復制到登台服務器。
  • 在登台服務器上測試站點。
  • 一切順利,將更改提交到回購。
  • 然后用Phing進行實時部署。

上面的問題是,假設我只是想糾正硬編碼到HTML頁面的單詞的拼寫,看起來有點過分了嗎?

最后,人們如何設置他們的服務器,你有一個服務器用於實時站點,一個用於登台,還有一個用於托管Phing(以及任何CI軟件)?

像Phing這樣的工具就是自動化。 因此,要回答這個“什么階段,你激活它,在它是什么付諸行動階段,在開發周期”,我會說你應該只要你覺得你會使用它獲得的利益帶來進去。

例如,如果您有一個需要完成多個命令的進程,那么使用Phing(甚至只是一個shell腳本)來自動執行這些步驟會有好處,特別是如果有多個人需要這樣做或者它是特別容易出錯。

因此,你應該使用phing來讓你的生活更輕松,而不是更難。 任何涉及多個shell命令的任務,或者總是涉及鍵入具有大量難以記憶的參數的相同命令,通常是您可以/應該使用phing來自動化的。

考慮到你提到的第一個步驟列表,它確實有點長。 相反,您應該提前使用phing來自動執行這些步驟:

  • 如果您有自動測試,請使用phing來運行它們
  • 致力於源代碼控制
  • 使用phing來部署代碼
  • 使用phing進行svn導出或任何其他手動步驟

所以基本上我會做你在第二個列表中建議的內容。

您可能應該為單獨的步驟制作phing命令,並使用於運行的phing命令通常一次性運行命令(例如,測試然后部署)。

如果您認為有必要,這將允許您跳過階段,例如在您給出的關於僅更改一些文本的示例中。

服務器的典型方法是在自己的服務器上安裝實時站點,然后讓登台/測試服務器盡可能地鏡像它。 對於CI或其他實用程序,您通常可以在登台服務器上托管它們,證明它們不會干擾您正在開發的主應用程序。

暫無
暫無

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

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