62

我有一个 jenkins 作业,它从 github 克隆存储库,然后运行增加文件中版本号的 powershell 脚本。我现在正在尝试将该更新文件发布回 github 上的原始存储库,因此当开发人员提取更改时,他会获得最新的版本号。

我尝试在后期构建事件中使用 Git Publisher,我可以毫无问题地发布标签,但它似乎没有发布任何文件。

4

5 回答 5

48

不需要git checkout masterWoland 的答案而是使用“其他行为”部分中的“结帐到特定本地分支”将“分支名称”设置为 master。

git commit -am "blah"还是需要的。

现在您可以使用“构建后操作”下的“Git Publisher”来推送更改。请务必指定要推送的“分支”(“要推送的分支”= master,“目标远程名称”= origin)。

不需要“合并结果”。

于 2015-04-22T02:19:05.297 回答
39

我自己找到了答案,这个博客帮助了: http: //thingsyoudidntknowaboutjenkins.tumblr.com/post/23596855946/git-plugin-part-3

基本上需要执行:

git checkout master

在修改任何文件之前

然后

git commit -am "Updated version number"

修改文件后

然后使用带有合并结果选项的 Git Publisher 的构建后操作,这将在成功构建时将更改推送到 github。

于 2013-11-12T07:12:51.620 回答
10

实际上,"Checkout to specific local branch"也不需要来自克劳斯的回答。

您可以进行更改,执行git commit -am "message"然后使用“Git Publisher”和“要推送的分支”= /refs/heads/master(或开发或您需要推送到的任何分支),“目标远程名称”= origin。

于 2016-10-18T05:41:15.093 回答
8

设置全局 Jenkins 凭据后,您可以应用此步骤:

stage('Update GIT') {
  steps {
    script {
      catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
        withCredentials([usernamePassword(credentialsId: 'example-secure', passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) {
            def encodedPassword = URLEncoder.encode("$GIT_PASSWORD",'UTF-8')
            sh "git config user.email admin@example.com"
            sh "git config user.name example"
            sh "git add ."
            sh "git commit -m 'Triggered Build: ${env.BUILD_NUMBER}'"
            sh "git push https://${GIT_USERNAME}:${encodedPassword}@github.com/${GIT_USERNAME}/example.git"
        }
      }
    }
  }
}
于 2021-01-25T06:35:30.983 回答
7

我按照以下步骤操作。它对我有用。

在 Jenkins 中,在 Build 下执行 shell,创建一个文件并尝试将该文件从 Jenkins 工作区推送到 GitHub。

在此处输入图像描述

下载 Git Publisher 插件并进行配置,如下图所示。

在此处输入图像描述

单击保存并构建。现在您可以检查您的 git 存储库是否已成功推送文件。

于 2019-10-22T13:43:31.293 回答