我试图在PowerShell脚本中使某个结果在构建过程中失败,但它对我不起作用.我正在使用TFS 2015中的新构建操作并尝试以下选项:
我确实在步骤的日志窗口中获得了红色文本,并在构建概述中标记了"问题",但构建结果仍为绿色:"构建成功"
我想使用脚本中的失败来使构建失败,从而使用失败构建的警报发送电子邮件.
编辑:包括PS脚本:
Param(
[string]$url
)
if ($url -eq '')
{
#use default value
$url = 'https://myurl.com'
}
$req = [system.Net.WebRequest]::Create($url)
$req.Timeout = 60000 * 5 # = 5 minutes
try
{
Write-Host "Try to get response from url:" $url
$res = $req.GetResponse()
Write-Host "Closing the connection"
$req.Close() # close the connection
}
catch [System.Net.WebException]
{
Write-Host "Got an exception"
Write-Host "##vso[task.logissue type=error;]Exception: " $_.Exception
if ($_.response) # try to close the connection
{
$_.response.Close();
} …
Run Code Online (Sandbox Code Playgroud) 作为ASP.NET Core 2.0构建过程的一部分,我添加了一个dotnet测试命令,我将其添加为Windows批处理文件.
这是我的命令.
dotnet test "MyProject.csproj" --no-restore --results-directory "MyProject\TestResults" --verbosity minimal
Run Code Online (Sandbox Code Playgroud)
这是从命令行运行时的输出.
所以它似乎都正常工作,但没有创建测试结果/测试输出.
为了自动化我们的部署,我想基于给定的ChangeSetId重建应用程序.一旦这个构建完成,我想得到构建的工件(.exe),所以我们可以部署它们.为了这个问题,我将重点放在"从构建中获取工件"部分.
出于DevOps的目的,我想使用PowerShell,因为它应该能够访问TFS API库,因为MS建议使用它.
环境
我在我们的On Premise TFS 2015服务器上设置了Builds(它工作正常) - 并在此构建之后添加了VSO任务 'Publish artifacts'.到现在为止还挺好.发布的工件将存储在服务器上,这基本上意味着我必须下载连接到构建的工件 - 每个现有的构建都将链接其工件 - 这比我书中的UNC更好.
没有来我的挑战; 我如何以程序方式访问这些工件,第3步?
我们希望将自定义步骤从XAML构建迁移到TFS2015内部部署的新构建任务.我安装了NodeJS和tfx-cli,但是当tfx-cli想要连接到TFS时,我需要提供pat(个人访问令牌),但我找不到我能得到它的地方.所有样本均适用于VSO,但不适用于内部部署TFS2015.是否可以从内部部署TFS2015获取PAT?
VS Team Services和TFS页面的REST API参考分离了"Build 1.0"和"Build 2.0"API.
似乎.NET API中也存在这样的差异,因为运行以下代码只列出"旧"XAML构建定义而不是新定义.
var tpc = new TfsTeamProjectCollection(new Uri("http://tfsurl"));
var buildServer = tpc.GetService<IBuildServer>();
var def = buildServer.QueryBuildDefinitions("Project Name"); // Finds only XAML definitions
Run Code Online (Sandbox Code Playgroud)
是否有一个新的DLL我可以参考编写与新TFS一起使用的等效代码,或者是所有的Web API?
我正在尝试在TFS 2015 Update 1中删除Git存储库.存储库是在现有TFVC团队项目中使用新Git和TFVC在同一项目功能中创建的.但是,我可以轻松地使用TFS门户创建Git存储库(使用"代码"选项卡),我无法在TFS门户或基于命令行的功能中找到任何功能来删除Git存储库.此外,当我浏览"管理存储库..."时,我找不到名为"删除存储库"的功能.
我没有运气谷歌搜索和搜索MSDN页面.
所以我不想删除整个团队项目(因为它包含很多源代码,工作项和历史记录),但只有一个空的Git存储库.
有没有人有建议?
编辑#1 当只有一个Git存储库保留在特定团队项目中时,管理页面中应显示"删除存储库"选项的子菜单似乎没有启用(参见屏幕截图).对于记录:当存在两个或更多Git存储库时,它是可见的.
我们正在尝试使用Javascript从网页调用TFS 2015 REST API,并且在使用TFS服务器建立有效身份验证方面遇到了挑战.
我们不知道如何生成个人访问令牌或OAuth访问令牌.下面的说明似乎更多地适用于VSO而非内部部署TFS. https://www.visualstudio.com/en-us/integrate/get-started/rest/basics
如何生成身份验证密钥/令牌?
更新:截至2017年3月,最新版本的On-Prem TFS支持为所有用户创建个人访问令牌.使用@Elmar的以下javascript代码,您可以请求从REST API更新,编辑TFS工作项.
我想从powershell脚本更新Build.BuildNumber变量作为构建步骤.
我试过了:
Write-Host "##vso[task.setvariable variable=BUILD_BUILDNUMBER]1.2.3.4"
Run Code Online (Sandbox Code Playgroud)
和
Write-Host "##vso[task.setvariable variable=Build.BuildNumber]1.2.3.4"
Run Code Online (Sandbox Code Playgroud)
这没效果.
我们在TFS 2015中有一个构建定义,它在Visual Studio 2015项目和解决方案中运行良好.我们现在决定升级到Visual Studio 2017,因此我们希望在Visual Studio构建任务中定位Visual Studio 2017.我们在构建代理上安装了Visual Studio 2017.不幸的是,Visual Studio构建任务中唯一可用的选项是2012年,2013年,2015年和最新版本.我们尝试过最新版本,但在构建代理上找不到Visual Studio 2017.它也不适用于msbuild任务.
tfs-2015 ×10
tfs ×6
powershell ×3
tfsbuild ×2
.net ×1
asp.net-core ×1
azure-devops ×1
c# ×1
devops ×1
dotnet-test ×1
git ×1
javascript ×1
msbuild ×1
rest ×1
team-build ×1
tfs2017 ×1