• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Heath's Blog

            There is no end, it is just the beginning! - A Game Developer's Notes

            CruiseControl.NET for CI in Game development

                有個項目使用了CruiseControl.NET(以下簡稱CC.NET)作為持續集成工具,周末抽空研究了一下,發現這款由ThoughtWorks貢獻的開源工具功能非常強大,主要體現在下面三個方面:

            1)靈活、高可配置性,如:多重組合條件觸發、多任務隊列策略;

            2)兼容目前幾乎所有的流行SCM工具,使得多種異構系統能夠由CruiseControl.NET統一監控和管理;

            3)完善的使用文檔,使上手和維護變得容易;

                而該項目引以自豪的代碼check in觸發構建的功能通過CC.NET也很容易實現。之前使用過Hudson,該系統采用主從式架構,使用者通過網頁讓Master控制Slave動作,由于Master由別的部門管理,出問題后需要聯系相關人解決,會有一定的處理延遲,而且安裝在構建機上的Slave服務經常崩潰。而CC.NET直接安裝在構建機上,配置IIS后可通過網頁直接訪問,操作維護都較前者容易。由于之前的構建腳本是用VisualBuild實現的,所以不可能再花時間用CC.NET再寫一遍。而通過實驗得知,其實CC.NET能夠以ExecutableTask的形式很好地與VisualBuild集成,目前每小時定時構建、NightBuild和構建成功后觸發的自動測試都已經放到了CC.NET上了。

                ccnet.config Example:

            <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
              <queue name="Q1" duplicates="ApplyForceBuildsReAdd" />
              <queue name="Q2" duplicates="ApplyForceBuildsReAdd" />
              <project name="AgileBuild" queue="Q1" queuePriority="1">
                <category>AutoBuild</category>
                <triggers>
                  <filterTrigger startTime="18:00" endTime="10:00">
                    <trigger type="intervalTrigger" name="Continuous" seconds="1800" buildCondition="ForceBuild" />
                    <weekDays>
                      <weekDay>Monday</weekDay>
                      <weekDay>Tuesday</weekDay>
                      <weekDay>Wednesday</weekDay>
                      <weekDay>Thursday</weekDay>
                      <weekDay>Friday</weekDay>
                    </weekDays>
                  </filterTrigger>
                </triggers>
                <tasks>
                  <exec>
                    <executable>VisBuildCmd.exe</executable>
                    <buildArgs>E:\GAMEDev\AgileBuilder.bld</buildArgs>
                    <baseDirectory>D:\VisBuildPro7</baseDirectory>
                    <buildTimeoutSeconds>3000</buildTimeoutSeconds>
                  </exec>
                </tasks>
              </project>
              <project name="NightBuild" queue="Q2" queuePriority="1">
                <category>AutoBuild</category>
                <triggers>
                  <scheduleTrigger time="23:00" buildCondition="ForceBuild" name="Scheduled">
                    <weekDays>
                      <weekDay>Monday</weekDay>
                      <weekDay>Tuesday</weekDay>
                      <weekDay>Wednesday</weekDay>
                      <weekDay>Thursday</weekDay>
                      <weekDay>Friday</weekDay>
                    </weekDays>
                  </scheduleTrigger>      
                </triggers>  
                <tasks>
                  <exec>
                    <executable>VisBuildCmd.exe</executable>
                    <buildArgs>"BUILD_OPTION=clientworldeffect" "PACK_TYPE=RAR" E:\GAMEDev\NightBuilder.bld</buildArgs>
                    <baseDirectory>D:\VisBuildPro7</baseDirectory>
                    <buildTimeoutSeconds>0</buildTimeoutSeconds>
                  </exec>
                </tasks>
              </project>
              <project name="NightAutoTest" queue="Q2" queuePriority="2">
                <category>AutoTest</category>
                <triggers>
                  <projectTrigger serverUri="tcp://heath-builder:21234/CruiseManager.rem" project="NightBuild">
                    <triggerStatus>Success</triggerStatus>
                    <innerTrigger type="intervalTrigger" seconds="60" buildCondition="ForceBuild" />
                  </projectTrigger>
                </triggers>
                <tasks>
                  <exec>
                    <executable>VisBuildCmd.exe</executable>
                    <buildArgs>E:\GAMEDev\AutoTest.bld</buildArgs>
                    <baseDirectory>D:\VisBuildPro7</baseDirectory>
                    <buildTimeoutSeconds>0</buildTimeoutSeconds>
                  </exec>
                </tasks>
              </project>  
            </cruisecontrol>
            

            References

            [1] http://cruisecontrol.sourceforge.net/

            [2] http://www.kinook.com/VisBuildPro/

            posted on 2010-08-09 20:22 Heath 閱讀(2221) 評論(0)  編輯 收藏 引用 所屬分類: Game Development

            亚洲αv久久久噜噜噜噜噜| 欧美伊香蕉久久综合类网站| 久久人搡人人玩人妻精品首页| 99久久精品费精品国产| 污污内射久久一区二区欧美日韩 | 国产亚洲精品自在久久| 久久福利青草精品资源站| 国产成人久久精品麻豆一区| 久久伊人精品一区二区三区| 国产精品一久久香蕉国产线看观看| 久久最近最新中文字幕大全 | 亚洲国产精品无码久久青草| 亚洲人成伊人成综合网久久久| 99久久精品免费观看国产| 久久精品国产亚洲αv忘忧草| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 9999国产精品欧美久久久久久| 中文字幕热久久久久久久| 97超级碰碰碰碰久久久久| 亚洲狠狠婷婷综合久久蜜芽| 久久久久女教师免费一区| 久久久久国产精品| 精品久久久久久国产潘金莲| 久久久亚洲AV波多野结衣 | 97精品伊人久久大香线蕉| 成人精品一区二区久久| 国产成人精品免费久久久久| 性欧美丰满熟妇XXXX性久久久| 久久这里有精品视频| 精品久久久久久无码免费| 久久精品国产免费| 99热成人精品热久久669| 国产Av激情久久无码天堂| 久久夜色精品国产噜噜麻豆| 精品伊人久久大线蕉色首页| 日日狠狠久久偷偷色综合96蜜桃| 久久精品人妻一区二区三区| 久久久久国产视频电影| 久久午夜福利电影| 色狠狠久久综合网| 狠狠色综合网站久久久久久久高清|