Jenkins Git发布者:如何在构建后将代码提交回master?

时间:2013-07-18 19:06:17

标签: android git jenkins jenkins-plugins git-push

我在使用Jenkins Git Publisher时遇到了一些困难,并在构建完成后将代码提交给master。我的构建过程增加了我的一个文件中的版本号,然后我想将这个文件提交回repo,但我似乎无法让它工作。

在源代码管理中 - > Git,这些是我的设置:

  • 存储库名称:Android
  • Branch Specifier:master
  • 结帐/合并到本地分支:master

然后,在Git Publisher中,这些是我的设置:

  • 仅在构建成功时按下:已选中
  • 合并结果:已选中
  • 分支推送:主人
  • 目标远程名称:Android
  • 注意:请注意:更新版本
  • 注意:目标远程名称:Android
  • 注意:注意命名空间:master

这是Jenkins的输出:

Pushing HEAD to branch master at repo Android
Adding note to namespace "master":
Updating version

请帮忙!

3 个答案:

答案 0 :(得分:4)

我认为jenkins git publisher插件没有像

那样做
git add .
git commit -m 'xxx'

插件仅执行推送,并可选择使用git-notes添加备注。

请参阅此处的注释:

https://github.com/hamsterready/jenkins-git-publisher-test/tree/refs/notes/master

实现以下目标:https://github.com/hamsterready/jenkins-git-publisher-test/commit/d80a1eef2133bee6d7a57b1b229ccd5990d2d606

我添加了后期构建步骤(执行shell脚本):

git add .
git commit -m 'Updating git.properties'

然后启用git发布者post-build操作,将本地提交推送到原点。

答案 1 :(得分:1)

如果您还在构建中使用Gradle,则可以使用Git plugin

以下是完整的build.gradle

buildscript {
  repositories { mavenCentral() }
  dependencies { classpath "org.ajoberstar:gradle-git:0.6.3" }
}
import org.ajoberstar.gradle.git.tasks.*

task tag(type: GitTag) {
    tagName = version
    message = "Release of $version"
}

task pushWithTags(type: GitPush){
    credentials{
        username = "karim"
        password = gitPassword
    }
    setPushTags(true)
}
task add(type: GitAdd){
    include("yourVersionFile.txt") 
    // or add everything with include("*") 
}
task commit(type: GitCommit){
    setMessage(commitMsg)
}
task pushNewVersion(){
    tasks.add.execute()
    tasks.commit.execute()
    tasks.tag.execute()
    tasks.pushWithTags.execute()
}

这是你使用脚本添加,标记,提交和推送的方法(在Jenkins中有plugin这样做):

gradle pushNewVersion "-PcommitMsg=hi" "-Pversion=0.1.1" "-PgitPassword=secret"

答案 2 :(得分:0)

我在Jenkins上使用Git插件将更改推回原点时遇到了同样的问题。您使用的Git客户端插件版本是什么? git客户端插件中必定存在错误,因此行为也是如此。

他们修复了与推送有关的问题。参考:https://issues.jenkins-ci.org/browse/JENKINS-17242。 而且似乎已经破了,因为最近再次提出了另一个错误:https://issues.jenkins-ci.org/browse/JENKINS-19442

如果你阅读网址中的讨论,建议的快速修复是将Git客户端插件降级到1.0.5并将git插件降级到1.3.0。希望这对你有用。