Подтвердить что ты не робот

Тег Git в конце сборки на Visual Studio Online (сборка vNext, размещение пула)

Я хочу автоматически пометить фиксацию, когда сборка будет успешной в VSO-сборке vNext. Я прочитал документ, включая эту страницу https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables, и я установил небольшой PowerShell script. Прежде всего, кажется, что переменная BUILD_REPOSITORY_AUTH_USERNAME (и пароль ее друга) пуста. Думаю, они доступны только с внешними гитами? Во-вторых, кажется, что проверка сборки выполняется с помощью задач, которые запускают LibGit2Sharp, поэтому учетные данные не хранятся ни в каком помощнике.

Это мой PowerShell script:

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

Он хорошо работает на моей машине, но на агенте (пул размещения), но, похоже, он зависает на агенте в команде push (через 1 час он автоматически отключается контроллером).

Вот журнал:

******************************************************************************
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
******************************************************************************

Как вы можете видеть, нет журнала для нажатия или команды состояния. Любая идея о том, как достичь этого?

4b9b3361

Ответ 1

Чтобы ответить на вопрос (или лучше название вопроса). Просто позвольте созданию vNext сделать это.

введите описание изображения здесь

Как указано в комментариях, это недоступно для внешних репозиториев git.

Ответ 2

Я отвечаю на то, что я пытался сделать (тег git был одной из немногих задач, которые я хотел сделать). Теперь можно выполнить команды git в скриптах. Документация находится здесь: https://www.visualstudio.com/en-us/docs/build/scripts/git-commands

Вот как это сделать:

Включить скрипты для запуска команд git

Предоставить разрешения на управление версиями для службы сборки:

  • Перейдите на вкладку панели управления Version Control ▼
  • На вкладке "Управление версиями" выберите репозиторий, в котором вы хотите запустить команды git, а затем выберите "Служба сборки сборки проекта".
  • Разрешения на грант, необходимые для команд git, которые вы хотите запустить.

Обычно вы хотите предоставить:

  • Создание ветки: Разрешить
  • Внести: Разрешить
  • Чтение: Inherited разрешает
  • Создание тегов: Inherited позволяет

Когда вы закончите предоставление разрешений, не забудьте нажать "Сохранить изменения".

Включить определение сборки для запуска Git.exe

На вкладке переменных установите эту переменную: system.prefergit - true

На вкладке параметров выберите Разрешить скриптам доступ к токену OAuth.