我使用新的(非XAML)构建过程使用Git repos运行TFS 2015.当新标记被推送到Git仓库时,是否有某种方法可以触发特定的构建?过滤器似乎只接受分支名称.
我有一个非常简单的脚本,它吐出像这样的环境变量:
Write-Host "SYSTEM_TEAMPROJECT: $ENV:SYSTEM_TEAMPROJECT"
Run Code Online (Sandbox Code Playgroud)
我的构建有一个步骤,即PowerShell任务.任务脚本文件名设置为TFSVC中脚本的路径,例如$/Main/BuildProcessTemplates/AllProps.ps1.
当我对新构建进行排队时,它无法报告以下错误:"术语'C:\ Builds\agent_work\cb535ea3\Main'未被识别为cmdlet,函数,脚本文件或可操作程序的名称.请检查拼写如果名称,或者如果包含路径,请验证路径是否正确,然后重试."
我是否错误地配置了该任务?
我在TFS 2015中为我的构建添加了一个自定义变量,但是,在运行构建时,此变量不会出现在环境变量中.我已通过运行验证了这一点
Get-ChildItem Env:
在PowerShell脚本中.有大量关于预定义构建变量的文档,但是如何访问自定义变量的文档非常令人失望.任何帮助,将不胜感激.
在Team Foundation Server 2015 Build(内部部署)中,我遇到运行简单命令行命令的问题.所有命令行任务都会失败,并显示以下错误:"找不到文件:".
以下面的构建定义为例:
这是使用内部部署的Build Agent执行的,并且会在日志中失败并出现以下异常:
BUILD FAILED
2016-01-20T12:04:47.5127709Z ##[warning]Filename doesn't indicate a full path to a executable file.
2016-01-20T12:04:47.5127709Z Executing the following commandline. (workingFolder = D:\_work\2\s)
2016-01-20T12:04:47.5127709Z date
2016-01-20T12:04:47.5127709Z Error message highlight pattern:
2016-01-20T12:04:47.5127709Z Warning message highlight pattern:
2016-01-20T12:04:47.5439748Z ##[error]File not found: date
Run Code Online (Sandbox Code Playgroud)
当然这是一个简化的例子,我只想使用date /t
命令输出当前日期.但我已经尝试了所有普通的命令行命令,如出现相同的问题dir
,time
,path
等MSDN不提供任何故障信息就可以了,比执行的工具必须驻留在PATH变量等.
该问题并非特定于一个构建定义或回购; 它也可以在其他人身上复制.
构建作为内置的svc_tfsbuild帐户运行.
我或许认为这可能是一个简单的设置,或者 - 疯狂猜测 - 与权利相关的问题,但找不到任何文档在哪里查看或检查什么.任何帮助,将不胜感激.
当我尝试从我的 linux 机器克隆一个 tfs 托管的 git repo http://tfstta.com:8080/tfs/DefaultCollection/_git/SampleTFSGit 时,我遇到了 Authentication not supported 错误:
org.eclipse.jgit.api.errors.TransportException:http://:@tfstta.int.thomson.com:8080/tfs/DefaultCollection/_git/SampleTFSGit.git:不支持身份验证*
启用基本身份验证/备用凭据似乎不是一个选项。
有人可以告诉我一个解决方法吗?我会很感激!
我们目前正在测试 git 作为我们新项目的源代码控制。我们使用 TFVC 已经很多年了,我们已经习惯了它的工作方式。到目前为止,几乎一切都按预期工作,但有一些非常简单的事情我无法弄清楚:在 TFVC 中,很容易在 2 个不连续的提交之间更改文件列表:
但是我发现无法使用 VS2015 中的 git 存储库或使用 TFS2015 update 2 的 Web 界面执行此操作:
我只能将提交与他的父提交进行比较:
我还找到了一种方法来比较 2 个提交之间的单个文件,而不是整个存储库:
是不是我没看对地方,如果不是,为什么没有实现这样的基本功能?这是我们每天用于审查或寻找错误的操作类型。
我知道还有其他方法可以使用外部工具(GUI 和命令行)来实现这一点,但我希望尽可能多地使用 VS/TFS,以减少团队中每个人的摩擦。
谢谢。
我的公司从TFVC切换到TFS Git。我正在迁移发布自动化工具以支持该开关。
除其他外,该工具为该版本创建一个新分支,以及一个新标签(Git中的“标签”)。对于TFVC,这些操作直接在TFS服务器上执行,并且不需要存储库的本地副本。在Git中仍然可以实现这一点,还是我不得不为这些操作在本地克隆存储库?
到目前为止,我看过的两个库是Microsoft.TeamFoundation.Git.Client,它似乎是TFS Git REST API的官方包装,以及LibGit2Sharp。我不仅限于这些库,因此也欢迎使用另一种选择。
我们还在从TFS 2015升级到TFS 2017的过程中,因此,如果存在仅针对我也想知道的问题之一的答案。
编辑1
明确地说,“直接在远程存储库上”是指没有经过本地存储库。该工具是完全自动化的,如果可能的话,我宁愿不需要文件系统访问。
编辑2
如下面 @rmcsharry所述,现在可以直接在远程服务器上创建标签。这是一个很好的改进,但是当然主要的目标是首先直接在远程上创建分支,这在Web UI中绝对是可能的,只是还没有通过API。这是Web UI屏幕截图:
没有那部分,我将无法通过本地文件系统来实现我提到的过程,这是我的目标。
我有一些嵌入式C软件存储在TFS下,并且还有一个相应的TFS构建定义,可以成功检出代码并使用相关的编译器构建它.所以要明确一点,虽然这是TFS,但我没有构建.NET应用程序.
现在我已经构建了工作,我正在尝试提供整体软件版本控制支持,这应该与构建过程相关联.我目前的目标如下:
正在构建的源代码有一个头文件,其中包含三个变量的#defines,Major Version,Minor Version和Build Number.然后,此头文件用于在编译时将版本号烘焙到软件中.概念是开发人员负责仅更新主要版本号和次要版本号作为开发的一部分.内部版本号始终保持为0,并且不应由开发人员修改.
在开发人员在自己的机器上本地生成构建的实例中,主要版本和次要版本将按照代码中的定义进行设置,但构建编号将保持为0,这表示不受控制的构建.但是,对于服务器上的官方构建,我希望TFS自动增加构建号,以便指定相同主要版本和次要版本的后续构建会导致构建号的增量,以提供整体唯一版本描述符.
在做了一些阅读之后,我特别看到这个工作是如何定义TFS内部版本号格式如下所示:$ MajorVersion.$ MinorVersion.$(Rev:.rr)其中MajorVersion和MinorVersion是我定义为的变量构建过程的一部分.
我意识到修订版基于整个构建号格式保持唯一性.所以我认为从源代码中提取主要版本和次要版本并在尝试评估修订版本和更广泛的版本号之前填充两个构建变量至关重要.我创建了一个Powershell脚本,使用正则表达式从头文件中提取主要版本和次要版本,然后在脚本中设置变量.
现在终于到了问题所在.看来我的方法存在缺陷.一旦我对构建进行排队,就立即评估TFS构建号,似乎为排队的构建命名.在这个阶段,我无法运行我的脚本来提取主要版本和次要版本,因此也得到了错误的版本号.因此,基于我之前提到的内部版本号格式,我最终得到的内容编号和结果名称类似于"..01"或"0.0.01",具体取决于我是否初始化构建定义中的主要和次要变量.
那么,在我有机会通过Powershell构建步骤从源代码中读取我的主要和次要版本之前,我是否可以看到一种方法可以推迟对TFS内部版本号的评估?如果我能这样做,则应根据真实的主要版本和次要版本正确计算修订版本.然后我将使用另一个脚本在我的头文件中仅设置Build号#define以匹配TFS内部版本号中的修订版.此外,由于TFS似乎使用内部版本号作为排队构建的名称,我不知道如何处理这个,因为我不知道构建排队时的最终TFS内部版本号.可以在构建过程中修改名称吗?
请帮忙.我认为我的想法相当简单,但我很难用其他非常好的TFS 2015构建系统来实现.
tfs tfs-2015 azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline
在配置 TFS vNext 构建代理时,我收到错误消息:
ErrorConnectingToTheServer 发送请求时出错。请求。
我在事件日志或其他任何地方都找不到任何其他错误消息。
请帮忙。
更新 1:SSL (https///tfs)不起作用。但是普通的 http:// 起作用了。
更新 2:我已删除旧代理并尝试配置新代理。这样做时,我收到了 _diag 文件夹中存在的以下错误:
System.Net.WebException:基础连接已关闭:发送时发生意外错误。---> System.IO.IOException: 无法从传输连接读取数据:远程主机强行关闭了现有连接。---> System.Net.Sockets.SocketException:远程主机强行关闭了现有连接.... System.Net.WebException:底层连接已关闭:发送时发生意外错误。---> System.IO.IOException: 无法从传输连接读取数据:远程主机强行关闭了现有连接。---> System.Net.Sockets.SocketException: 一个现有的连接被远程主机强行关闭.... System.IO.IOException: 无法从传输连接读取数据:一个现有的连接被远程主机强行关闭主持人。
更新 3: 我有两台服务器,如下所示:1 是应用程序服务器,其他是 SharePoint 和报告服务器,试图在第三台服务器中配置构建。TFS URL 配置了 SSL 443。
如果我尝试使用http://tfs server/tfs配置代理,它会成功,但在构建时收到错误。当我尝试使用 https 进行配置时,出现上述错误。有趣的是,我曾将这台服务器用于两个代理,在那种情况下,我又多了一台服务器,我发现错误工作正常。
由于TFS 2018不支持SharePoint集成,因此应迁移哪些数据库以及应如何使用SharePoint数据库执行此操作.
tfs-2015 ×10
tfs ×7
tfsbuild ×3
git ×2
asp.net-core ×1
azure-pipelines-release-pipeline ×1
branch ×1
fiddler ×1
git-clone ×1
powershell ×1
tfs2017 ×1
tfs2018 ×1