【问题标题】:Automated Publish of Developer work using cc.net使用 cc.net 自动发布开发人员工作
【发布时间】:2009-07-08 00:30:49
【问题描述】:

我想构建一个开发人员构建项目,然后需要将其发布到服务器,成功发布后需要针对该开发人员发布构建我的测试项目。基本想法是每当任何开发人员在 Svn 上提交某些内容时运行此过程。

目前我正在使用 CC.net 和 MSBuild。任何人都知道如何完成这项工作。

步骤 1. SVN 上的开发人员提交 步骤 2. 检测 Svn 上的更改并在构建服务器上进行更新 步骤 3. 使用最近的更改构建项目 步骤 4. 发布到服务器 第 5 步。然后针对最近的发布运行测试(我使用 cc.net、msbuild 和 nunit 成功地完成了这个过程)

【问题讨论】:

    标签: svn msbuild nunit cruisecontrol.net


    【解决方案1】:

    如果您使用的是项目标签,您还可以将发布商“包含在其中”。 例如:

    <project >  
     <tasks>  ... 
     </tasks>   
    <publishers> 
     <buildpublisher>   
       <sourceDir>path with built binaries</sourceDir>
       <publishDir>path that will be shared</publishDir>
      </buildpublisher> 
     </publishers> 
    </project>
    

    【讨论】:

    • 我尝试过使用这种方法,但它不是发布,而是将源目录中的所有文件复制到目标目录。我想要的是在服务器上发布网站。任何想法如何做到这一点
    【解决方案2】:

    无论构建成功还是失败,CC.Net 中的发布者部分都会被执行。您需要将“发布以构建服务器”作为任务添加到任务部分下 - 将其放在最后一个构建步骤之后。

    这将导致 CC.Net 仅在所有先前的“任务”完成后“发布以构建服务器”,而不会引发错误代码。

    通常,如果您知道 DOS .bat 文件中“发布以构建服务器”所需的内容,您可以执行以下操作;

    <tasks>
        <msbuild>
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
            <workingDirectory>c:\Somewhere</workingDirectory>
            <projectFile>Something.sln</projectFile>
            <buildArgs>/noconsolelogger /p:Configuration=Debug /v:m</buildArgs>
            <targets>Build</targets>
            <timeout>720</timeout>
            <logger>C:\program files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
        </msbuild>
        <exec>
            <executable>C:\program files (x86)\CruiseControl.NET\server\PublishToServer.bat</executable>
            <baseDirectory>C:\somewhere</baseDirectory>
            <buildArgs></buildArgs>
            <buildTimeoutSeconds>9000</buildTimeoutSeconds>
        </exec>
    </tasks>
    

    正如 slawekg 指出的那样,您可以使用 buildpublisher,如果构建成功,它将执行,但是我仍然发现使用批处理文件进行复制比使用可用的更可配置构建发布者。

    【讨论】:

    • 如何编写用于发布的 Dos .bat 文件。你能把代码发给我吗
    【解决方案3】:

    您也可以考虑将“推送”写入您的 MS 构建脚本。这将为您提供 Sam 所说的灵活性和控制力,并且仍然确保只有在构建成功时才会发布。

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多