• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用Python做軟件持續構建

    發表于:2009-05-15來源:作者:點擊數: 標簽:pythonPython構建軟件
    輕量級的軟件 開發 方法學,如 XP 和近期流行的 敏捷 軟件開發,都注重代碼的持續集成和 自動測試 。開發人員以非常短的迭代周期工作,以便能夠經常性的交付可以工作的軟件。在這樣的軟件方法學中,代碼持續集成和自動測試極其重要,以至于被形象地稱為項目
     輕量級的軟件開發方法學,如XP和近期流行的敏捷軟件開發,都注重代碼的持續集成和自動測試。開發人員以非常短的迭代周期工作,以便能夠經常性的交付可以工作的軟件。在這樣的軟件方法學中,代碼持續集成和自動測試極其重要,以至于被形象地稱為項目開發的心跳,心跳停止之時通常是項目死亡之時。這個至關重要的心跳,通常由Nightly Build系統來實現。

      實現Nightly Build途徑之一是利用已有的工具。

      “對于Java開發項目,支持Night Build的軟件很多,開源的選擇有AntHill OS和CruiseControl,后者是大名鼎鼎的ThoughtWorks的作品,配置起來比較麻煩。而AntHill是一個Java Web應用,擁有友好的定制界面,是2003年Jolt大獎的Productivity Award獲得者,比CruiseControl更容易入手?!?/P>

      這方面的工具中我推薦Buildbot。BuildBot基于Python,配置簡潔明了。BuildBot是分布式結構,master監控若干slaves(監視狀態,下發命令,搜集結果),各個slave按照指示執行update/compile/test并返回結果。Python和其他許多項目利用它做持續構建。例如Python的持續構建報告在http://www.python.org/dev/buildbot/;Wireshark的構建報告http://buildbot.wireshark.org/trunk/。

      以上工具都只是持續構建的框架,版本構建的每個步驟(編寫Ant腳本、Python腳本或者其他)仍然需要自己實現。

      途徑之二就是完全自己動手:腳本+crond服務。腳本可以選擇Python/Perl/TCL/Shell等。

      按照我的理解:持續構建分為如下幾個部分:

      (1)調度策略:定時構建,還是每次提交就構建?分布式構建還是集中式構建?

      BuildBot支持定時構建/每次提交構建等多種,支持分布式構建。而自己動手則僅支持定時構建,僅支持集中式構建。

      (2)版本構建步驟:一個版本是由多個組件構成的。這些組件之間的依賴關系如何?版本特定的操作有哪些(如更新Changlog,計算Build number等)?

      BuildBot不關心組件依賴關系和版本特定操作;AntHill之類的工具直接支持這些概念。而自己動手則需要自己處理這些東西。

      (3)組件構建步驟:從何處獲取最新版本源碼?如何編譯?如何放置到版本文件中去?

      一個組件通常由一個Makefile(傳統C/C++項目),Ant腳本(Java項目)或Scons腳本(我偏愛的,Make替代品)來管理,所以構建步驟非常簡單。所有的工具都將單個組件的構建任務交給用戶編寫腳本片段去做。

      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>