簡體   English   中英

Delphi 持續集成系統

[英]Continuous Integration System for Delphi

有沒有像 Hudson for Java 那樣的 Delphi 的 CI 系統? Hudson 是否有任何 Delphi 集成?

我們使用 Hudson :),它與 ​​Delphi 一起工作得很好。

這是我的一個項目的完整設置:

<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.CVSSCM">
    <cvsroot>:sspi:cvsonly:foo@bar:/baz</cvsroot>
    <module>SIP</module>
    <canUseUpdate>false</canUseUpdate>
    <flatten>true</flatten>
    <isTag>false</isTag>
    <excludedRegions></excludedRegions>
  </scm>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <triggers class="vector"/>
  <builders>
    <hudson.tasks.BatchFile>
      <command>&quot;C:\Program Files\Nant\bin\nant&quot; -buildfile:etc\sip.build build-d7 test</command>
    </hudson.tasks.BatchFile>
  </builders>
  <publishers>
    <hudson.tasks.BuildTrigger>
      <childProjects>quux, foozle, wibble</childProjects>
      <threshold>
        <name>SUCCESS</name>
        <ordinal>0</ordinal>
        <color>BLUE</color>
      </threshold>
    </hudson.tasks.BuildTrigger>
  </publishers>
  <buildWrappers/>
</project>

sip.build 的 delphi-7 目標構建了項目的測試套件(DUnit 的 TextTestRunner),因此作業的輸出只是失敗/錯誤測試的計數,這要歸功於:

var
  R: TTestResult;

begin
  R := TextTestRunner.RunRegisteredTests;
  ExitCode := R.ErrorCount + R.FailureCount;
end;

我們使用CruiseControl.NET ,它與 Delphi 完美配合。

似乎 Embarcadero 本身使用 Hudson。 請參閱 Embarcadero 開發經理 Nick Hodges 的評論。 http://blogs.embarcadero.com/nickhodges/2010/03/10/39369#comment-29952

Hudson很棒,它也可用作MSI 設置 舊 Delphi 版本(MSBuild 之前)的用戶可以使用流行的 Apache Ant 和 NAnt 構建腳本環境創建構建腳本。 當然,簡單的命令行(批處理腳本)構建也是可能的。

此安裝程序的亮點之一是它帶有 JRE,完全獨立。 這是因為 Windows 用戶通常不知道如何處理 *.war 文件,而且他們通常不喜歡進入命令提示符並手動運行 Java 命令。

因此,無需先通過太多安裝程序和命令行即可輕松嘗試。

安裝后確保訪問管理應用程序中的插件頁面,有許多擴展可用,對 Delphi 開發人員也很有用。 插件概述在這里在線。

哈德森工具德爾福:還有一個代碼覆蓋工具,德爾福與哈德森支持這里

TeamCity是另一個非常好的 CI 系統。 它是一種商業產品,但為最多 20 個用戶和 3 個構建代理上的 20 個構建配置提供免費許可證。

Bamboo是適用於任何語言的 CI 系統。 它可以從 Atlassian 獲得。 它的起價為 10 美元 - 這包括所有功能和無限用戶,但僅限於 10 個計划,僅在安裝它的服務器上運行構建。 它可以使用 Amazon Elastic Compute Cloud 實例作為遠程代理。

SmartBear 的自動構建工作室 在Automated Build Studio Server 中,它在FinalBuilder 之前引入了CI。

我們使用詹金斯 Jenkins 有一個RAD Studio 插件,可以將 Delphi 項目的編譯集成到作業中。 使用它(插件)不是強制性的,我們使用命令行工具和 MSBuild 來編譯項目。

項目 DUnItX (用於創建單元測試)與 Jenkins 無縫集成。

在這里你可以找到一些關於 Jenkins 和 Delphi 集成的文章。 介紹、安裝、...是西班牙語,但您可以毫無問題地進行翻譯,並且包含圖像和代碼非常簡單。

1- Integración continua con Delphi (GIT) (介紹)
2- Integración continua con Delphi (Jenkins) – Instalación (INSTALLATION)
3- Integración continua con Delphi (Jenkins) – Primer proyecto (FIRST PROJECT)
4- Integración continua con Delphi (Jenkins) – 管道管道的使用)

將我們的Parabuild添加到要檢查的工具列表中——它幾乎構建了任何可以從命令行構建的東西——包括 Delphi,它提供了與 Perforce 和其他版本控制系統(如 Git 和 Bazaar)的集成。

我們使用 Jenkins CI 系統和Owly CI工具作為構建系統和依賴項處理程序。

看看這個教程

初始設置只需不到 5 分鍾

Hudson使用簡單,帶有一些基於 Web 的助手,因為 Delphi 項目是使用 MSBuild 構建的。

如果您需要更多自定義和 3rd 方工具集成(例如集成指標工具),那么CruiseControl.NET是理想的解決方案。

看看我的CC.NET Dashboard page for DelphiCodeToDoc (你也可以看看配置文件)。 我正在做結帳+gui和命令行版本的編譯以及單元測試+單元測試執行和報告+ftp上傳構建交付

只是為了表達我對 CruiseControl.NET 的支持,因為 Delphi 2007 及更高版本基於 MSBuild,那么通過 CC.NET 構建應該沒有問題。 DUUnit 的某個地方有一個補丁,因此它將結果輸出到 XML 文件,然后可以將其集成到構建結果圖表中。

errrm,你能定義你真正在尋找什么嗎?

您使用了“ continuous integration這個短語,但您的意思是continuous build以確保它可以編譯和喜歡,還是實際上是指在您還運行回歸測試的意義上的continuous integration

我會好奇你是如何做到這一點的(Auto-it?)。

不,它真正的問題太多,因為精彩的哈德森(這是決然不會只是JAVA)有眾多的插件,也可以讓你執行一個DOS批處理腳本-任何腳本,你願意寫,打造,測試,報告結果等。

另一種選擇(雖然不是免費的,有限數量的用戶 10 美元)是Atlassian Bamboo JetBrains TeamCity 是另一個免費的(用戶數量有限)。 我在 Delphi 2009/2010 上都試過,它們工作得很好。 兩者都允許與其他 SCM 中的 Perforce 集成。

暫無
暫無

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

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