希望有人可以帮助我。让TeamCity启动并运行并在各种项目上构建。我希望能够自动将成功的TeamCity运行版本复制/部署到测试服务器。
我正在考虑使用PowerShell来做这件事,但我对其他想法持开放态度。有些人可以向我提供有关如何实现这一目标的信息。
感谢。
答案 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:'是测试服务器的映射驱动器。
只有在有人在没有正确文件夹结构的环境中构建项目时,才需要进行错误处理以避免脚本错误。
到目前为止,每件事都很有效!