Ответ 1
Чтобы ответить на вопрос (или лучше название вопроса). Просто позвольте созданию vNext сделать это.
Как указано в комментариях, это недоступно для внешних репозиториев git.
Я хочу автоматически пометить фиксацию, когда сборка будет успешной в 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
******************************************************************************
Как вы можете видеть, нет журнала для нажатия или команды состояния. Любая идея о том, как достичь этого?
Чтобы ответить на вопрос (или лучше название вопроса). Просто позвольте созданию vNext сделать это.
Как указано в комментариях, это недоступно для внешних репозиториев git.
Я отвечаю на то, что я пытался сделать (тег git был одной из немногих задач, которые я хотел сделать). Теперь можно выполнить команды git в скриптах. Документация находится здесь: https://www.visualstudio.com/en-us/docs/build/scripts/git-commands
Вот как это сделать:
Включить скрипты для запуска команд git
Предоставить разрешения на управление версиями для службы сборки:
Обычно вы хотите предоставить:
Когда вы закончите предоставление разрешений, не забудьте нажать "Сохранить изменения".
Включить определение сборки для запуска Git.exe
На вкладке переменных установите эту переменную: system.prefergit
- true
На вкладке параметров выберите Разрешить скриптам доступ к токену OAuth.