git - 从 TeamCity 中的分支名称中删除斜线

标签 git teamcity git-flow octopack

我正在尝试将分支名称从 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/

相关文章:

php - 尝试从 PHP 脚本访问 'git pull',遇到 SSH 权限问题

git - 当我想获得另一个文件的未修改版本时,如何只提交一些文件?

TeamCity Nuget 安装构建步骤不适用于多个源,其中之一是 TC 的私有(private) NuGet 源

Maven 和 git-flow,候选发布版本策略

java - Git 流 : How to configure a one-click release process in Jenkins?

git - 为什么 Travis git ref 有时不匹配我的 pull 请求?

ruby - Homebrew 软件安装 : Failed during: git fetch origin master:refs/remotes/origin/master -n --depth=1

TeamCity NuGet 安装程序步骤问题

团队城市。命令行构建步骤。 setParameter总是显示 "Incorrect property name"错误

github - 如何使用 GitHub 拉取请求进行修补程序