如何将构建复制到测试服务器?

时间:2009-07-10 12:58:21

标签: continuous-integration teamcity

希望有人可以帮助我。让TeamCity启动并运行并在各种项目上构建。我希望能够自动将成功的TeamCity运行版本复制/部署到测试服务器。

我正在考虑使用PowerShell来做这件事,但我对其他想法持开放态度。有些人可以向我提供有关如何实现这一目标的信息。

感谢。

4 个答案:

答案 0 :(得分:4)

我使用WGet。以下是用于形成团队城市网址的instructions。您可以执行WGet in powershell,但如果您只想使用powershell来实现此功能,则可以使用普通wget utility for windows

编辑:这是我们的QA部署中的一个示例(更改名称以保护有罪):

"C:\Program Files (x86)\NcFTP\wget.exe" "http://teamcityserver.domain.com:8111/guestAuth/repository/download/bt6/.lastFinished/Artificat.ear"

wget的位置无关紧要,就在它恰好的位置。该参数的guestAuth部分指定了身份验证类型(在我们的例子中,我们启用了访客授权,不必担心密码 - 它只是一个内部服务器,无论如何都受防火墙保护)。选项在我链接的文档中。

参数的另一个有趣特征是bt6。这是构建的唯一键,并且对于每个项目都是不同的。您可以通过将团队城市网站导航到该构建的配置来发现它是什么 - 它将在那里。还有按名称引用配置的说明,但我们发现它太冗长而无法理解。

答案 1 :(得分:1)

我今天一直在为我们的应用程序实现这一点。使用msbuild。我发现这非常有用,因为我们可以添加自定义步骤,例如修改配置文件,存档实时版本以及通知人们更改。

这是一个您可能会觉得有用的构建脚本。它预编译应用程序,然后将其复制到deploy目录中。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Deploy">

    <PropertyGroup>
        <WebsitePublishDirectory>Artifacts\Website</WebsitePublishDirectory>
        <WebsiteDeployDirectory>\\SERVERNAME\Path\to\web\root</WebsiteDeployDirectory>
        <WebsiteProject>[Project name here]</WebsiteProject>
    </PropertyGroup>

    <Target Name="Deploy">
        <RemoveDir Directories="$(WebsitePublishDirectory)" />

        <AspNetCompiler
            VirtualPath="test"
            PhysicalPath="$(WebsiteProject)"
            TargetPath="$(WebsitePublishDirectory)"
            Force="true"
            Debug="false" />

        <ItemGroup>
            <PublishedFiles Include="$(WebsitePublishDirectory)\**" />
        </ItemGroup>

        <Copy SourceFiles="@(PublishedFiles)" DestinationFolder="$(WebsiteDeployDirectory)\%(RecursiveDir)" />
    </Target>    
</Project>

答案 2 :(得分:1)

您还可以在测试服务器上安装TeamCity代理。这实际上是TeamCity的用途。

答案 3 :(得分:0)

我在Visual Studio中创建了一个Post Build Script,如下所示:

  

C:\ TeamCityBuild \ pt_build.bat
  退出0

然后在TC服务器上我有一个如下所示的.bat:

  

net use r:\ 192.168.16.85 \ WebSite密码/USER:domain.com•administrator
  xcopy“C:\ TeamCityBuild \ path \ WebSite *”“r:\”/ R / Y / E
  r:\ 192.168.16.85 \ WebSite / DELETE
  如果errorlevel 1转到buildFAILED
  :buildOK
  echo Wehej !!!
  退出0
  :buildFAILED
  回声哦NOOO !!!
  1号出口

'R:'是测试服务器的映射驱动器。

只有在有人在没有正确文件夹结构的环境中构建项目时,才需要进行错误处理以避免脚本错误。

到目前为止,每件事都很有效!