[英]What does a good Phing workflow look like?
我正試圖進入CI的心態,本周末一直在和Phing一起玩。 這一切看起來都很直接,並且已經有很多例子。
然而,令我困惑的是人們如何實際使用它。 也就是說,我不是在尋找你做的測試,而是使用Phing建議的工作流程,在什么階段你激活它,在開發周期的哪個階段采取行動。
例如,我們有幾個網站,目前我們在本地編輯源代碼並保存上傳到實際網站(我知道這有多糟糕......),我們做了一些快速測試並確保代碼按計划運行。 如果是這樣,我們承諾回購並繼續進行。 如果沒有,我們可以回滾或編輯撤消和重新保存。 雖然這看起來很瘋狂,但簡單性對我們來說效果很好。
我們現在有一個小團隊,所以我試圖將Phing推入這個過程,以獲得linting / sniffing / mess檢測等所有額外的好處,但是我無法確定事件的最佳順序。
你會建議:
以上似乎有點長啰嗦。 是不是因為看起來我試圖將測試部署與實時部署合並,讓我感到困惑?
此外,它似乎有點倒退,然后運行Phing,然后必須編輯並可能重新提交再次嘗試之前。
因此,它會更有意義:
上面的問題是,假設我只是想糾正硬編碼到HTML頁面的單詞的拼寫,看起來有點過分了嗎?
最后,人們如何設置他們的服務器,你有一個服務器用於實時站點,一個用於登台,還有一個用於托管Phing(以及任何CI軟件)?
像Phing這樣的工具就是自動化。 因此,要回答這個“什么階段,你激活它,在它是什么付諸行動階段,在開發周期”,我會說你應該只要你覺得你會使用它獲得的利益帶來進去。
例如,如果您有一個需要完成多個命令的進程,那么使用Phing(甚至只是一個shell腳本)來自動執行這些步驟會有好處,特別是如果有多個人需要這樣做或者它是特別容易出錯。
因此,你應該使用phing來讓你的生活更輕松,而不是更難。 任何涉及多個shell命令的任務,或者總是涉及鍵入具有大量難以記憶的參數的相同命令,通常是您可以/應該使用phing來自動化的。
考慮到你提到的第一個步驟列表,它確實有點長。 相反,您應該提前使用phing來自動執行這些步驟:
所以基本上我會做你在第二個列表中建議的內容。
您可能應該為單獨的步驟制作phing命令,並使用於運行的phing命令通常一次性運行命令(例如,測試然后部署)。
如果您認為有必要,這將允許您跳過階段,例如在您給出的關於僅更改一些文本的示例中。
服務器的典型方法是在自己的服務器上安裝實時站點,然后讓登台/測試服務器盡可能地鏡像它。 對於CI或其他實用程序,您通常可以在登台服務器上托管它們,證明它們不會干擾您正在開發的主應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.