我正在尝试将分支名称从TeamCity传递到OctopusDeploy,以便我们可以轻松跟踪部署来自哪个分支。
为此,我想将分支名称附加到版本号(或使用octopack构建的nuget软件包)上,以便可以在OctopusDeploy UI中显示此名称。
正常工作,除了我们使用git-flow,以便我们的某些分支包含斜杠,这会导致octopack失败(因为文件名不能包含斜杠):
+:refs/heads/(feature/*)
+:refs/heads/(release/*)
+:refs/heads/(hotfix/*)
是否可以在不更改我们命名分支机构的方式的情况下,用TeamCity中的其他内容替换斜杠?
最佳答案
使用构建脚本,您可以与构建过程进行交互,并指定一个自定义内部版本号,您可以在其中替换斜杠。有关更多详细信息,请检查TeamCity docs。
Here,您可以找到有关如何更改内部版本号的C#示例。
例如,为了修改内部版本号,您可以添加CommonAssemblyInfo.cs
并添加以下内容(从以上链接中提取):
$ww = ([Math]::Floor([DateTime]::Now.DayOfYear/7)+1)
Write-Host "##teamcity[buildNumber '%major.minor%.$ww.%build.counter%']"
$fileLocation = Join-Path -Path "%teamcity.build.checkoutDir%" -ChildPath "\SourceDir\AssemblyInfo.cs"
$oldValue = "AssemblyFileVersion\(""(\d+)\.\d+\.\d+\.\d+""\)"
$newValue = [string]::Concat("AssemblyFileVersion(""%major.minor%.", $ww, ".%build.counter%", """)")
(get-content $fileLocation) | foreach-object {$_ -replace $oldValue, $newValue} | set-content $fileLocation
关于git - 从TeamCity中的分支名称中删除斜杠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33419119/