Jenkins使用Git配置版本控制

时间:2015-10-19 18:28:12

标签: git jenkins

我最近设置了一个Jenkins服务器,在配置了很多项目之后,我意识到能够对所有配置设置进行版本控制会很有价值。

我遇到的大多数备份解决方案和插件都涉及基本上只将文件复制到备份文件夹的脚本,或基本上相同的插件。但是,我不只是想要进行备份,我还想提供版本控制。

所以在考虑之后我继续设置了一个Git存储库,该存储库位于根Jenkins安装文件夹中。

以下是我目前使用的.gitignore文件:

for(i in 1:nrow(df)){
 assign(as.character(df$name[i]), df$age[i])
}

这似乎可以很好地捕获Jenkins安装文件夹中任何XML文件的所有更改。我唯一的抱怨是,这是一个手动过程,需要在任何可修改的更改集之后提交/推送回购。

我想知道是否有更好的方法来实现这一目标,或者这样做是否有任何潜在的问题?

2 个答案:

答案 0 :(得分:1)

您应该查看Job DSL Plugin。它允许在源代码等脚本文件中维护作业和查看配置。并且脚本可以很好地保存在源代码管理中。工作流程正在将Job DSL脚本更改为SCM签入,然后在Jenkins中运行作业以检出脚本并调整配置。

保持配置中经常在SCM中更改的部分。 Jenkins配置的其他部分,如全局设置,可以保存在每日备份中,不一定保留在源代码管理中。配置的那些部分不经常改变。

答案 1 :(得分:0)

我最终创建了一个Jenkins项目,它基本上对Jenkins配置的任何更改进行git add / commit / push脚本编写。它使用默认参数作为提交消息,如果为空,则脚本只运行git状态并终止。我还安排它每晚运行以获取任何可能未使用此作业通过自定义提交消息推送的更改。

Jenkins目前在Windows上,所以这里是我正在使用的批处理命令。由于Jenkins最初设置为在SYSTEM帐户下运行,因此我必须设置几个环境变量以使其按原样运行。

@ECHO OFF

set HOMEDRIVE=C:
set HOMEPATH=Users/Jenkins
cd "C:\Program Files (x86)\Jenkins"

@ECHO ON

git status

@ECHO OFF

if "%commit_message%" == "" (
  EXIT 0
)

@ECHO ON

git add -A
git commit -m "%commit_message%"

@ECHO OFF

IF %ERRORLEVEL% NEQ 0 (
  EXIT 0
)

@ECHO ON

git push
git status
git log -n 3

存储Git凭据确实是唯一不能很好处理的事情。现在我只是添加了用户:传入Git repo URL,但显然这并不理想。我曾尝试过使用Windows的一些凭据保存方法,但它们无法正常工作。这仍然需要整理。

相关问题