2016-08-23 16 views
0

我将一个项目添加到teamcity中,需要添加一个powershell脚本来更改一些配置设置并生成压缩的工件。我已经构建并测试了teamcity之外的脚本文件,但为了在构建过程中使其工作,我需要获取工件构建的路径。将teamcity工件pathTeamcity插入到powershell脚本中

有没有办法在c:\artifacts\myproject\build\38下面的代码中用一个teamcity参数来替换,这个参数总是会选取最新的build目录?

#Find and replace various app.config settings 
$location = C:\Artifacts\MyProject\Build\38\myApp\myConfig.config"; 
(Get-Content $location) | 
ForEach-Object { $_ -replace '<add key="platform" value="xxxx"/>', '<add key="platform" value="test"/>' } | 
Set-Content $location 

#Should take source directory and create a zip file from it 
$source = "C:\Artifacts\MyProject\Build\38\myApp\" 
$destination = "C:\Artifacts\FrontOfficeApi\Build\38\artifact.zip" 

GenerateZipFile -DestinationFilePath $destination -SourcePath $source 

非常感谢

回答

0

$buildDirectory = "%teamcity.build.chec‌​koutDir%"会给你在源代码已经签出的目录,这样你就可以从那里相对工作。这是如果您运行PowerShell作为源代码,否则您可以使用相同的变量将参数传递到PowerShell脚本中。

希望这会有帮助

+0

感谢您的答复。我决定做的是尝试将teamcity.build.checkoutDir的值输出到物理文件。这是由于几个原因。 1.我自己知道团队城市是如何工作的2.这是一个更简单的脚本。 – kcis8rm

+0

但是,当我添加PS构建步骤并运行构建时,出现错误,表示没有兼容的构建代理。当我禁用新的步骤时,构建运行良好!这些设置是:Powershell运行模式:任意,比特性:x86,脚本:源代码,脚本:$ buildDirectory =“%teamcity.build.chec koutDir%” $ buildDirectory | Out-File c:\ debug.txt。脚本执行模式:从外部文件执行.ps1。任何建议将是良好的感谢。 – kcis8rm