簡體   English   中英

你如何管理你的構建[使用Phing]流程?

[英]How do you manage your build [using Phing] process?

我正在嘗試使用Phing進行自動化:

  • 運行測試
  • 在每台開發者機器上運行數據庫遷移[使用dbdeply]
  • 在需要時部署到生產

我認為在我的項目中添加一個構建文件夾並將所有構建配置文件和db deltas放在該文件夾中是有意義的。 並將所有這些提交到SVN存儲庫中。 所以每個開發人員在從svn簽出時都會獲得更新的構建文件。 並能夠運行構建以使用新更改更新其數據庫。

在生產服務器上:我打算在那里添加另一個構建文件,以獲取svn中的最新Tagged版本並執行CSS和JS壓縮。


我計划使用PHPUnderControl實現持續集成,因此我可以跟蹤每個構建的結果,並在構建失敗時收到通知。

所以,你認為這一切都有意義,或者你還有其他更好的建議嗎?

你說的有意義:它非常接近我經常使用的東西(有時用螞蟻,有時用phing,有時用一些shell腳本)

build目錄中,我會有這樣的事情:

build/
    testing/
    development/
    staging/
    production/
    common/

每個子目錄中都有一個build.xml文件 - 包括位於common目錄中的另一個build.xml文件,其目的是在“common” build.xml文件中放置盡可能多的“常用”代碼,並擁有每個環境特定的文件,其中包含盡可能少的xml代碼。

這可以通過最后一個版本的phing中存在的import任務來完成(不確定它是否在穩定版本中 - 我正在使用SVN檢查phing,為了這個項目,我正在進行的工作)


但有一件事:你說你想從生產服務器部署到生產; 相反,我寧願:

  • 在“開發”服務器上:
    • 從SVN導出
    • 壓縮JS / CSS以及所有這些
    • 創建一個tar.gz存檔
  • 將該存檔上載到生產服務器
  • 在“生產”服務器上:
    • 取消壓縮上傳的存檔
    • 更改幾個符號鏈接以使用新版本的源代碼(有關更多信息,請參閱我在此處給出的答案)
    • 更新DB中必須完成的操作

想法是:

  • 在生產服務器上做盡可能少的事情
    • 萬一出了問題
    • 如果有一天,您的生產服務器無法訪問SVN服務器
  • 擁有可以部署在多個生產服務器上的物理存檔


哦,作為旁注:你必須逐步寫出“如何部署到生產”的某種文檔!

這在您度假的那天非常有用,其他人因為緊急錯誤修復而必須部署到生產中;-)

暫無
暫無

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

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