我有一个 jenkins 作业,它从 github 克隆存储库,然后运行增加文件中版本号的 powershell 脚本。我现在正在尝试将该更新文件发布回 github 上的原始存储库,因此当开发人员提取更改时,他会获得最新的版本号。
我尝试在后期构建事件中使用 Git Publisher,我可以毫无问题地发布标签,但它似乎没有发布任何文件。
不需要git checkout master
Woland 的答案。而是使用“其他行为”部分中的“结帐到特定本地分支”将“分支名称”设置为 master。
git commit -am "blah"
还是需要的。
现在您可以使用“构建后操作”下的“Git Publisher”来推送更改。请务必指定要推送的“分支”(“要推送的分支”= master,“目标远程名称”= origin)。
不需要“合并结果”。
我自己找到了答案,这个博客帮助了: http: //thingsyoudidntknowaboutjenkins.tumblr.com/post/23596855946/git-plugin-part-3
基本上需要执行:
git checkout master
在修改任何文件之前
然后
git commit -am "Updated version number"
修改文件后
然后使用带有合并结果选项的 Git Publisher 的构建后操作,这将在成功构建时将更改推送到 github。
实际上,"Checkout to specific local branch"
也不需要来自克劳斯的回答。
您可以进行更改,执行git commit -am "message"
然后使用“Git Publisher”和“要推送的分支”= /refs/heads/master
(或开发或您需要推送到的任何分支),“目标远程名称”= origin。
设置全局 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"
}
}
}
}
}