2015-06-14 107 views
11

我想在VSO構建vNext上構建成功時自動標記提交。 我已閱讀包含此頁面的文檔https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables,並且我已經安裝了一個小型的PowerShell腳本。 首先,看起來BUILD_REPOSITORY_AUTH_USERNAME變量(及其朋友密碼)是空的。我猜他們只能用外部門禁? 其次,看起來構建的簽出是通過運行LibGit2Sharp的任務完成的,因此憑據不會存儲在任何助手中。在Visual Studio Online上構建Git標記(構建vNext,託管池)

這是我的PowerShell腳本:

git tag $Env:BUILD_BUILDNUMBER 
git status 
git config -l 
git push --progress https://$Env:GITUSER:$Env:[email protected]/DefaultCollection/_git/myproject tag $Env:BUILD_BUILDNUMBER 
git status 
exit 

它運作良好,我的機器上,而在代理(託管庫),但它似乎在推命令上的代理掛起(1H後,它會自動得到被控制器殺死)。

下面是日誌:

****************************************************************************** 
Starting task: Powershell: tools/GitCommands.ps1 
****************************************************************************** 
HEAD detached at 819e778 
nothing to commit, working directory clean 
core.symlinks=false 
core.autocrlf=true 
color.diff=auto 
color.status=auto 
color.branch=auto 
color.interactive=true 
pack.packsizelimit=2g 
help.format=html 
http.sslcainfo=/bin/curl-ca-bundle.crt 
sendemail.smtpserver=/bin/msmtp.exe 
diff.astextplain.textconv=astextplain 
rebase.autosquash=true 
core.bare=false 
core.filemode=false 
core.symlinks=false 
core.ignorecase=true 
core.logallrefupdates=true 
core.repositoryformatversion=0 
remote.origin.url=https://myrepo.visualstudio.com/DefaultCollection/_git/myproject 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

****************************************************************************** 
Finishing task: PowerShell 
****************************************************************************** 

正如你所看到的,沒有日誌推,也不是狀態命令。 關於如何實現這一點的任何想法?

+0

似乎沒有env變量BUILD_REPOSITORY_AUTH_USERNAME了。所以如何授權到git是個大問題。 – Ilya

回答

9

回答問題(或更好的問題標題)。 只需讓vNext構建就可以做到。

enter image description here

正如評論所說,這不適用於外部git倉庫。

+0

爲什麼這不是up-vote?看起來不錯。它是不正確的? –

+0

任何想法如何可以得到一個自定義,在那裏的腳本定義變量,如GitVersion的輸出? – MytyMyky

+0

想通了 - 你可以用日誌命令更新buildNumber,然後使用上面的策略! https://github.com/Microsoft/vso-agent-tasks/issues/375 – MytyMyky

0

我正在回答我自己想做什麼(git標籤是我想要做的幾個任務之一)。現在可以在腳本中執行git命令。該文件是在這裏: https://www.visualstudio.com/en-us/docs/build/scripts/git-commands

這裏是HOWTO:

啓用腳本運行Git命令

格蘭特版本控制權限,以構建服務:

  • 圍棋到版本控制控制面板選項卡▼
  • On t在版本控制選項卡中,選擇要運行Git命令的存儲庫,然後選擇Project Collection Build Service。
  • 授予您希望運行的Git命令所需的權限。

通常你會希望授予:

  • 分支創建:允許
  • 貢獻:允許
  • 閱讀:繼承允許
  • 標籤創建:繼承允許

完成授予權限後,請務必點擊保存更改。

使您的構建定義運行Git.exe

在設置這個變量的變量標籤:system.prefergittrue

在選項選項卡中選擇允許腳本訪問的OAuth令牌。

+0

在'git push origin * ref *'我得到'致命的:無法讀取用戶名* URL *:無效參數',任何線索我能做什麼?我是否需要向TFS服務器添加憑證(在premis上)? – Love

相關問題