如何在竹子构建中标记git repo

时间:2014-12-09 04:49:11

标签: bamboo git-tag

我正在尝试在Bamboo版本中标记ruby gem的git repo。我认为在红宝石中做这样的事情就可以完成这项工作

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

但问题是回购没有原产地。不知怎的,竹子正在摆脱origin 任何线索?

3 个答案:

答案 0 :(得分:44)

是的,如果您导航到作业工作区,您会发现Bamboo不会直接执行git clone"#34;并且远程设置为内部文件路径。

幸运的是,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},因为这不一定会指向你工作中签出的repo。

另请注意,如果您要从多个来源退房,$ {bamboo.planRepository.repositoryUrl}会指向您的"源代码结帐"中的第一个回购。任务。通过以下方式引用更具体的URL:

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

等等。

答案 1 :(得分:3)

我知道这是一个旧线程,但是,我想添加此信息。

从Bamboo 6.7版开始,它具有Git存储库标记功能Repository Tag

您可以将存储库标记任务添加到作业,并将Bamboo变量添加为标记名称。 您必须通过应用程序链接集成Bamboo-Bitbucket。

答案 2 :(得分:1)

似乎在竹子代理结账后,原始的远程存储库URL设置为file://nothing

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

这就是为什么我们可以使用git remote set-url更新网址,或者在我的情况下我只是创建了一个新的别名,因此它不会破坏现有的行为。必须有一个很好的理由为什么这样设置。

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

我还注意到使用${bamboo.planRepository.<position>.repositoryUrl}对我来说不起作用,因为它在我的计划中定义为https。切换到ssh有效。