Version control 有没有办法将Hudson/Jenkins配置文件保存在源代码管理中?
我是Hudson/Jenkins的新手,想知道是否有办法将Hudson的配置文件签入源代码管理 理想情况下,我希望能够在UI中单击显示“保存配置”的按钮,并将Hudson配置文件签入源代码管理。最有用的答案 有一个插件叫做Version control 有没有办法将Hudson/Jenkins配置文件保存在源代码管理中?,version-control,hudson,jenkins,jenkins-plugins,Version Control,Hudson,Jenkins,Jenkins Plugins,我是Hudson/Jenkins的新手,想知道是否有办法将Hudson的配置文件签入源代码管理 理想情况下,我希望能够在UI中单击显示“保存配置”的按钮,并将Hudson配置文件签入源代码管理。最有用的答案 有一个插件叫做 原始答案 看一看类似的问题。基本思想是使用来检测xml文件的更改。您的第二部分是将更改提交给SVN 编辑:如果您找到了确定更改用户的方法,请告知我们 编辑2011-01-10同时有一个新插件:。目前它只适用于subversion和git,但计划支持更多的存储库。我从版本0.
原始答案 看一看类似的问题。基本思想是使用来检测xml文件的更改。您的第二部分是将更改提交给SVN 编辑:如果您找到了确定更改用户的方法,请告知我们 编辑2011-01-10同时有一个新插件:。目前它只适用于subversion和git,但计划支持更多的存储库。我从版本0.0.3开始使用它,到目前为止它运行良好 有一款新产品,完全符合您的需求 SCM同步配置Hudson插件 旨在实现两个主要功能:
- 将您的config.xml(和其他资源)hudson文件与 SCM存储库
- 使用提交消息跟踪对每个文件所做的更改(和作者)
实际上我还没有尝试过,但它看起来很有希望。要使用Git手动管理配置,下面的.gitignore文件可能会有所帮助
# Miscellaneous Hudson litter
*.log
*.tmp
*.old
*.bak
*.jar
*.json
# Generated Hudson state
/.owner
/secret.key
/queue.xml
/fingerprints/
/shelvedProjects/
/updates/
# Tools that Hudson manages
/tools/
# Extracted plugins
/plugins/*/
# Job state
builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber
有关更多详细信息,请参阅和。我完全在哈德逊登记,您可以将此作为起点 将整个hudson保存在git中有很多好处。所有配置更改都会被记录下来,您可以在一台机器上非常轻松地测试测试,然后使用git pull更新另一台机器 我们将此作为哈德逊连续交付设置的样板 问候 Morten从Mark()得到的答案应该适用于SVN和Git(尽管Git配置不适用于我) 但如果您需要它与Mercurial repo一起使用,请使用以下脚本创建作业:
hg remove -A || true
hg add ../../config.xml
hg add ../../*/config.xml
if [ ! -z "`hg status -admrn`" ]; then
hg commit -m "Scheduled commit" -u fill_in_the@blank.com
hg push
fi
请注意,Vogella最近(2014年1月,与OP的问题2010年1月相比)对此有不同的看法。
考虑到可以产生大量的提交。 因此,他不再依赖插件和自动化流程,而是手动管理相同的功能: 我发现提交量有点大,所以我决定手动控制提交,只保存作业信息,而不保存Jenkins配置。
为此,请切换到Jenkins作业目录(Ubuntu:
/var/lib/Jenkins/jobs
)并执行“git init
”命令
我创建了以下.gitignore
文件,以仅存储Git作业信息:
现在,您可以根据自己的意愿添加和提交更改。如果您向Git存储库添加另一个远程服务器,您可以将配置推送到另一台服务器 实际上也建议添加(在
$JENKINS_HOME
中):
- jenkins自己的配置(
)config.xml
- jenkins插件配置(
)和hudson*.xml
- 用户配置(
)users/*/config.xml
.jenkins.yml
文件:
script:
- make
- make test
詹金斯会这样做:
您可以在中找到配置文件(例如,
/var/lib/jenkins
)
要将它们保存在VCS中,首先以Jenkins(sudo su-Jenkins
)身份登录并创建其git凭据:
git config --global user.name "Jenkins"
git config --global user.email "jenkins@example.com"
然后初始化、添加和提交基本文件,例如:
git init
git add config.xml jobs/ .gitconfig
git commit -m'Adds Jenkins config files' -a
还考虑创建<代码> GiTigNoRe/COD>以下文件以忽略(根据需要进行自定义):
然后添加它:git add.gitignore
完成后,您可以添加作业配置文件,例如
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
最后,如果需要,添加并提交任何其他文件,然后将其推送到远程存储库,在那里保存配置文件
更新Jenkins文件时,您需要重新加载它们(从磁盘重新加载配置)或从Jenkins CLI运行
reload Configuration
。我更喜欢的方式是排除Jenkins主文件夹中的所有内容,但您确实希望在VCS中的配置文件除外。下面是我使用的.gitignore
文件:
*
!.gitignore
!/jobs/*/*.xml
!/*.xml
!/users/*/config.xml
!*/
这会忽略除(!
).gitignore
本身、作业/项目、插件和其他重要的用户配置文件之外的所有内容(*
)
还值得考虑包括插件
文件夹。令人烦恼的更新插件应该包括在内
基本上,此解决方案使Jenkins/Hudson将来的更新更容易,因为新文件不会自动进入范围。您只需在屏幕上显示您真正想要的内容。一个更准确的
.gitignore
,其灵感来自:
它忽略所有内容,除了.xml
配置文件和.gitignore
本身。
(与's
.gitignore
的区别在于它不会“unignore”所有顶级目录(!*/
),比如日志/
,缓存/
,等等。)或者您可以按需将这些信息存储在Git repo中:另请参见:检查:了解Jenkins文件的结构。我对使用Git的SCM Sync配置插件的工作配置感兴趣,我尝试了几种配置,但都无法正常工作(日志中的错误消息充其量也没有帮助)我不同意这种说法:如果你使用git并且在复杂的环境中运行,那么这个插件有一些主要的弱点:“如果你使用git,那么你应该使用默认名称的SSH密钥。它是“id_rsa”。SCM Sync没有指定ssh密钥路径的选项。SCM Sync使用jenkins进程所有者的主目录中的.ssh/id\u rsa。'from[SCM Sync配置插件与Subversion插件>=2.0(per)不兼容。我不建议使用此pa
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
*
!.gitignore
!/jobs/*/*.xml
!/*.xml
!/users/*/config.xml
!*/
*
!.gitignore
!/jobs/
!/jobs/*/
/jobs/*/*
!/jobs/*/config.xml
!/users/
!/users/*/
/users/*/*
!/users/*/config.xml
!/*.xml