7

使用 Jenkins,我正在检查一个稍后使用 SBT 构建的项目。但是当它尝试执行sbt-release插件时,它会抱怨:

No tracking branch is set up. Either configure a remote tracking branch, or remove the pushChanges release part

这是我的 Jenkins GIT 插件配置:

  • 存储库 URL:指向 .git 文件
  • 名称:空白
  • 参考规格:空白
  • 要构建的分支/分支说明符(默认为空白):开发(我正在构建的分支)
  • 结帐/合并到本地分支(可选):开发

我按照回答这个问题的指南设置了这些项目。

我认为 SBT-release 插件需要远程跟踪才能在分支上制作标签。

4

4 回答 4

10

假设您想从 master 构建。

在 GIT 部分的 Jenkins 中选择:

Branches to build:     master

还添加:

Additional Behaviours: 
      Check out to specific local branch:      master

构建步骤

执行外壳:

git branch --set-upstream-to=origin/master master

然后添加您的 SBT 构建步骤

sbt "release with-defaults"
于 2015-03-23T15:23:34.623 回答
6

为了解决它,我别无选择,只能构建一个命令行脚本:

git checkout develop || git checkout -b develop
git reset --hard origin/develop
git branch --set-upstream-to=origin/develop develop
git pull

并在 SBT 构建之前执行它。

于 2013-05-17T14:49:17.403 回答
1

.git/config文件需要以下三行:

[branch "master"]
  remote = origin
  merge = refs/heads/master

其他两个答案都添加了这些,但您可以手动添加它们

于 2015-02-18T07:24:50.783 回答
0

就我而言,遥控器丢失了。为了解决这个问题,我在使用 sbt 调用 Build 之前使用了以下命令行。

git remote add origin git@foo/bar.git || git remote -v
git checkout master
git reset --hard origin/master
于 2013-12-19T16:02:46.693 回答