TFS2015构建定义Powershell错误

问题描述 投票:1回答:1

我创建了一个powershell脚本,它作为构建定义中的第一步运行,它获取最新代码并标记分支以及执行GitVersion.exe / updateassemblyinfo。

我现在遇到的问题是TFS构建定义创建了一个分离的头(分支?),每当我尝试执行git checkout master时,它在输出中显示为错误。

2017-12-20T02:59:28.3245551Z在D:\ agent_work \ 87 \ s上运行'git clean -fdx'。

2017-12-20T02:59:28.3713306Z在D:\ agent_work \ 87 \ s上运行'git reset --hard HEAD'。

2017-12-20T02:59:28.4337848Z HEAD现在是00382dd Dummy change2

2017-12-20T02:59:28.4337848Z开始取货......

2017-12-20T02:59:28.6209313Z将00382dd7601ab49b146240338e3f89e70aae2ece检出D:\ agent_work \ 87 \ s

2017-12-20T02:59:28.6677321Z在提交00382dd7601ab49b146240338e3f89e70aae2ece检出分支机构refs / heads / master for repository ABN

2017-12-20T02:59:28.6677321Z commit = 00382dd7601ab49b146240338e3f89e70aae2ece

2017-12-20T02:59:28.6677321Z离开TfsGitSourceProvider.PrepareRepositoryAsync

2017-12-20T02:59:28.8081365Z运行任务

2017-12-20T02:59:28.8237446Z启动任务:Powershell:Build.ps1

2017-12-20T02:59:28.8549329Z。 'd:\ agent_work \ 87 \ S \ Build.ps1'

2017-12-20T02:59:28.8705393ZC:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command“try {[System.Security.Cryptography.ProtectedData] | Out -Null} catch {Write-Verbose'添加assemly:System.Security'; Add-Type -AssemblyName'System.Security'; [System.Security.Cryptography.ProtectedData] | Out-Null}; Invoke-Expression -Command([ System.Text.Encoding] :: UTF8.GetString([System.Security.Cryptography.ProtectedData] ::撤消([System.Convert] :: FromBase64String( 'AQAAANCMnd8BFdERjHoAwE / CL + sBAAAArGybdmeqjkeRrRCzDg34RQAAAAACAAAAAAADZgAAwAAAABAAAAARQNIZ8ZSSCdvKkC9ig9FQAAAAAASAAACgAAAAEAAAAA05pop9sZqolQMnXBaYCcEoAAAAJWiIi4dluseSGAh6baRpqKRCAen5vNpoXE1rso5mC6ionSeRDREhsRQAAAAulpIkem7g6hB4in0HmeadOg7cOw =='),[System.Convert] :: FromBase64String('XRQnTZZ + 4fqW37oX7nUNSA =='),[System.Security.Cryptography.DataProtectionScope] :: CurrentUser))); if(!(Test-Path -LiteralPath variable:\ LastExitCode)){Write-Verbose'Last Ë没有设置xit代码。' } else {Write-Verbose('$ LastExitCode:{0}'-f $ LastExitCode); exit $ LastExitCode}“

2017-12-20T02:59:28.8705393Z执行以下powershell脚本。 (workingFolder = D:\ agent_work \ 87 \ s)

2017-12-20T02:59:28.8705393Z D:\ agent_work \ 87 \ s \ Build.ps1

2017-12-20T02:59:30.1653526Z您的分支机构是“origin / master”的最新版本。

2017-12-20T02:59:30.2277683Z ## [错误]切换到分支'master'

2017-12-20T02:59:30.2277683Z已经是最新的。

2017-12-20T02:59:30.2277683Z成功

2017-12-20T02:59:30.2433610Z ## [错误]进程已完成,退出代码为0,并且已将1个错误写入错误流。

2017-12-20T02:59:30.2745493Z完成任务:PowerShell

2017-12-20T02:59:30.2745493Z ## [错误]任务PowerShell失败。这导致作业失败。查看任务的日志以获取更多详细信息。

Build output image

以下是发生错误的powershell脚本的一部分:

[CmdletBinding()]
param()
Push-Location $PSScriptRoot
& git fetch origin
& git checkout master
& git merge origin/master --ff-only
Pop-Location
Write-Host
Write-Host "Success" -ForegroundColor Green

任何的想法?

git powershell tfs
1个回答
1
投票

I found my solution from here

由于git即使成功也会写入stderr(例如同步时拉),这会处理这些情况并写出输出的第一行,这通常是你需要知道的

© www.soinside.com 2019 - 2024. All rights reserved.