Yuv*_*oth 139 version-control hudson jenkins jenkins-plugins
我是Hudson/Jenkins的新手,想知道是否有办法检查Hudson的配置文件来源控件.
理想情况下,我希望能够在UI中单击"保存配置"中的某个按钮,并将Hudson配置文件签入到源代码管理中.
Pet*_*tze 62
有一个名为SCM Sync配置插件的插件.
看看我对类似问题的回答.基本思想是使用filesystem-scm-plugin来检测xml文件的更改.您的第二部分是将更改提交给SVN.
编辑:如果您找到了确定更改用户的方法,请告诉我们.
编辑2011-01-10同时有一个新的插件:SCM Sync配置插件.目前它只适用于subversion和git,但计划支持更多的存储库.我从0.0.3版本开始使用它,到目前为止它运行良好.
Von*_*onC 39
请注意,Vogella最近(2014年1月,与2010年1月的OP问题相比)有不同的看法.
考虑到SCM Sync配置插件可以生成大量提交.
因此,他不是依赖插件和自动化流程,而是手动管理相同的功能:
我发现提交量有点压倒性,所以我决定手动控制提交并仅保存Job信息而不是Jenkins配置.
为此切换到Jenkins作业目录(Ubuntu:)/var/lib/jenkins/jobs并执行"git init"命令.我创建了以下
.gitignore文件来仅存储Git作业信息:
builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber
modules/
*.log
Run Code Online (Sandbox Code Playgroud)
现在,您可以根据自己的意愿添加和提交更改.
如果您将另一个遥控器添加到您的Git存储库,您可以将配置推送到另一台服务器.
Alberto实际上也建议添加(in $JENKINS_HOME):
config.xml),hudson*.xml)和users/*/config.xml)Emi*_*Sit 19
要使用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
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅https://gist.github.com/780105和http://bit.ly/i58rg2.
Mat*_*nit 14
有一个新的SCM Sync Configuration插件可以完全满足您的需求.
SCM同步配置Hudson插件主要针对两个主要功能:
- 使用SCM存储库保持config.xml(和其他ressources)hudson文件的同步
- 使用提交消息跟踪对每个文件所做的更改(和作者)
我还没有尝试过这个,但看起来很有希望.
您可以在Jenkins主文件夹中找到配置文件(例如/var/lib/jenkins)。
要将它们保留在VCS中,请首先以Jenkins(sudo su - jenkins)登录并创建其git凭据:
git config --global user.name "Jenkins"
git config --global user.email "jenkins@example.com"
Run Code Online (Sandbox Code Playgroud)
然后初始化,添加并提交基本文件,例如:
git init
git add config.xml jobs/ .gitconfig
git commit -m'Adds Jenkins config files' -a
Run Code Online (Sandbox Code Playgroud)
还可以考虑.gitignore使用以下文件创建文件以忽略(根据需要进行定制):
# Git untracked files to ignore.
# Cache.
.cache/
# Fingerprint records.
fingerprints/
# Working directories.
workspace/
# Secret files.
secrets/
secret.*
*.enc
*.key
users/
id_rsa
# Plugins.
plugins/
# State files.
*.state
# Job state files.
builds/
lastStable
lastSuccessful
nextBuildNumber
# Updates.
updates/
# Hidden files.
.*
# Except git config files.
!.git*
!.ssh/
# User content.
userContent/
# Log files.
logs/
*.log
# Miscellaneous litter
*.tmp
*.old
*.bak
*.jar
*.json
*.lastExecVersion
Run Code Online (Sandbox Code Playgroud)
然后添加:git add .gitignore。
完成后,您可以添加作业配置文件,例如
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
Run Code Online (Sandbox Code Playgroud)
最后,根据需要添加并提交任何其他文件,然后将其推送到要保留配置文件的远程存储库。
更新Jenkins文件后,您需要重新加载它们(从磁盘重新加载配置)或reload-configuration从Jenkins CLI 运行。
我更喜欢的方法是排除Jenkins主文件夹中的所有内容,除了您真正希望包含在VCS中的配置文件。这是.gitignore我使用的文件:
*
!.gitignore
!/jobs/*/*.xml
!/*.xml
!/users/*/config.xml
!*/
Run Code Online (Sandbox Code Playgroud)
这会忽略*(!).gitignore本身,作业/项目,插件以及其他重要和用户配置文件之外的所有内容()。
还值得考虑包括该plugins文件夹。应当包括烦人的更新插件...
基本上,此解决方案使将来的Jenkins / Hudson更新变得更容易,因为新文件不会自动包含在范围内。您只需要真正想要的就可以了。
一个更准确的.gitignore,灵感来自nepa的答复:
*
!.gitignore
!/jobs/
!/jobs/*/
/jobs/*/*
!/jobs/*/config.xml
!/users/
!/users/*/
/users/*/*
!/users/*/config.xml
!/*.xml
Run Code Online (Sandbox Code Playgroud)
它会忽略除.xml配置文件和.gitignore自身之外的所有内容。(的差异NEPA的.gitignore是,它没有‘屏蔽’所有顶级目录(!*/)一样logs/,cache/等等)
| 归档时间: |
|
| 查看次数: |
51164 次 |
| 最近记录: |