【问题标题】:Setup remote tracking in Jenkins / Git在 Jenkins / Git 中设置远程跟踪
【发布时间】:2013-05-11 22:04:12
【问题描述】:

通过 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 文件
  • 姓名:空白
  • Refspec:空白
  • 要构建的分支/分支说明符(默认为空白): develop(我正在构建的分支)
  • 结帐/合并到本地分支(可选):开发

我按照回答this question的指南设置这些项目。

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

【问题讨论】:

  • 尝试使用origin/develop 而不是develop。我不认为这是你的问题,但我整个星期都在配置 Jenkins,这在我们的设置中很重要。

标签: git jenkins sbt jenkins-plugins


【解决方案1】:

假设您想从 master 构建。

在 Jenkins 的 GIT 部分中选择:

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"

【讨论】:

    【解决方案2】:

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

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

    并在 SBT 构建之前执行它。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        git remote add origin git@foo/bar.git || git remote -v
        git checkout master
        git reset --hard origin/master
        

        【讨论】:

          猜你喜欢
          • 2021-02-09
          • 2021-07-10
          • 1970-01-01
          • 2013-08-13
          • 2014-08-22
          • 2011-03-04
          • 2017-01-16
          • 2016-06-05
          • 1970-01-01
          相关资源
          最近更新 更多