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

Как пометить репозиторий git в бамбуковой сборке

Я пытаюсь пометить репозиторий git рубинового драгоценного камня в сборке Bamboo. Я думал, что делать что-то подобное в рубине сделало бы работу

`git tag v#{current_version}`
`git push --tags`

Но проблема в том, что репо не имеет происхождения. каким-то образом Bamboo избавляется от origin Любая подсказка?

4b9b3361

Ответ 1

Да, если вы перейдете к рабочему пространству задания, вы обнаружите, что Bamboo не делает простой git клон "под капотом", а пульт установлен на внутренний путь к файлу.

К счастью, Bamboo хранит исходный URL-адрес репозитория как ${bamboo.repository.git.repositoryUrl}, поэтому все, что вам нужно сделать, - установить удаленное указание назад на оригинал и нажать туда. Это то, что я использовал с базовыми репозиториями git и Stash, создав тег на основе номера сборки.

git tag -f -a ${bamboo.buildNumber} -m "${bamboo.planName} build number ${bamboo.buildNumber} passed automated acceptance testing." ${bamboo.planRepository.revision}
git remote add central ${bamboo.planRepository.repositoryUrl}
git push central ${bamboo.buildNumber}
git ls-remote --exit-code --tags central ${bamboo.buildNumber} 

Последняя строка - просто заставить задачу сбой, если вновь созданный тег не может быть прочитан.

РЕДАКТИРОВАТЬ: Не поддавайтесь искушению использовать переменную ${bamboo.repository.git.repositoryUrl}, так как это не обязательно укажет на репо, извлеченное из вашей работы.

Также помните, что если вы проверяете несколько источников, ${bamboo.planRepository.repositoryUrl} указывает на первое репо в задаче "Исходный код". Более конкретные URL-адреса указаны с помощью:

${bamboo.planRepository.1.repositoryUrl}
${bamboo.planRepository.2.repositoryUrl}
...

и т.д.

Ответ 2

Похоже, что после проверки бамбуковым агентом URL-адрес удаленного репозитория для источника устанавливается как file://nothing

[remote "origin"]
url = file://nothing
fetch = +refs/heads/*:refs/remotes/origin/*

Вот почему мы можем либо обновить url с помощью git remote set-url, либо в моем случае я просто создал новый псевдоним, чтобы он не нарушил существующее поведение. Должна быть веская причина, почему он установлен таким образом.

[remote "build-origin"]
url = <remote url>
fetch = +refs/heads/*:refs/remotes/build-origin/*

Я также заметил, что использование ${bamboo.planRepository.<position>.repositoryUrl} не сработало для меня, так как оно было определено в моем плане как https. Переключилось на ssh.