2017-06-13 10 views
1

私の現在のパイプラインでは、現在のパイプライン以外のリポジトリをpullする必要がありますが、git pull(powershellまたはcmdを使用)を実行しようとすると、動かない。Git pullをTFSビルドパイプラインでPowerShellで実行できません

エージェントが実行されているコマンドを試しても、正しく実行されます。

これは私のPowerShellスクリプトです:私はこれを実行すると、私は「更新」を取得するが、それだけのブロックが存在しても何も起こらない

Write-Host (Get-Location) 

Set-Location -Path xxx 

Write-Host (Get-Location) 

#Update the repository, with no prints 

Write-Host "Updating" 
Invoke-Expression "& git pull origin develop --verbose" 

Write-Host "Updated" 

exit 0 

誰でも私にこれを行う正しい方向を指摘できますか?

+0

わかりませんが、私の腸の感覚は、ギツバーグへのハンドシェイクです...あなたはエージェントを引き寄せてみましたか? これは私のローカルサーバのログです。 '' '/Users/demokritos/work/src/github.com/anotherfolder/projectK/weirdfolder /Users/demokritos/work/src/github.com/ abc 更新中 github.com ...を検索する。 github.com(ポート9418)に接続しています... 192.60.253.113 done。 git://github.com/abc/xyz *ブランチマスタ→FETCH_HEAD = [最新の状態]マスター→オリジン/マスター すでに最新の状態です。 '' ' – Curios

+0

ビルドエージェントの' c:\ agent \ _work \ 1 \ s'のような 'Build.SourcesDirectory'に他のリモートをプルしたいだけでしたか? –

+0

@ Patrick-MSFTいいえ、私は他のフォルダの場所に持っています。そのため、別のパスに "Set-Location"があります –

答えて

1

これが誰かを助けている場合、私は以下を使用してこの問題を克服することができました:

Invoke-Expression "& git -c http.extraheader='AUTHORIZATION: bearer $(System.AccessToken)' pull --progress origin develop -q" 

要求が資格情報を求めブロックされたようです。

0

あなたは直接、以下のようにコマンドラインタスク経由のgitコマンドを使用できます。 enter image description here

まずあなたが手動ビルドサービスはアカウントで、エージェントで正常のgitコマンドを実行できていることを確認します。他のリポジトリに何らかの認証が必要な場合は、スクリプトまたはコマンドに認証も含める必要があります。

また、Git.exeを実行するようにビルド定義を有効にしてください。

system.prefergit true 

詳細は、このチュートリアルをご参照ください:この変数を設定する変数]タブで まだエラーが発生する場合Run Git commands in a script

は、トラブルシューティングのためのより多くの詳細ログを有効にするためにあなたを示唆しています。これを行うには、以下を実行してください。というシステム変数のという変数を追加し、その値を 'true'に設定して、TFSビルドのデバッグログを有効にします。

+0

ねえ、私はこれを試しましたが、残念ながら私はそれを動作させることができませんでした。 –

+0

@JorgeLima詳細なエラーは何ですか?関連するビルドログを共有できますか? –

1

私はTFS 2017でDelphiプロジェクトを構築するためにたくさんのPS1スクリプトを使って同じ問題に遭遇しました。バージョン1.105.7のエージェントを使用していれば、すべて問題ありませんでした。新しいエージェント(2.120.2)に更新するとき、スクリプトはこれ以上変更をフェッチできず、ビルドパイプラインをブロックしました。

重い研究を行った後、私は2つのエージェントのバージョンの違いの1つが見つかりました:

  • 古い薬(1.105.7が)に設定したgitのcredential.manager属性、システムのコンフィグを使用「マネージャ
  • 新しい薬剤(2.120.2)は何とかこの設定、意味をクリアし、何の資格情報が所定の位置になかった、スクリプトがユーザー名/パスワードの「促さ」ので、
をブロック

この問題を遭遇するには、ビルドマシンで資格情報ヘルパーを再度設定するだけでした。

\path\to\tfs\agent\externals\git\cmd\git.exe config --system credential.helper manager 
関連する問題