145

私は Hudson / Jenkins を初めて使用し、Hudson の構成ファイルをソース管理にチェックインする方法があるかどうか疑問に思っていました。

理想的には、「構成を保存」という UI のボタンをクリックして、Hudson 構成ファイルをソース管理にチェックインできるようにしたいと考えています。

4

10 に答える 10

64

最も役に立った回答

SCM Sync 構成プラグイン というプラグインがあります。


元の回答

同様の質問に対する私の回答を見てください。基本的な考え方は、filesystem-scm-pluginを使用して xml ファイルへの変更を検出することです。2 番目の部分は、変更を SVN にコミットすることです。

編集:変更するユーザーを特定する方法を見つけた場合は、お知らせください。

EDIT 2011-01-10一方、新しいプラグインがあります: SCM Sync 構成プラグイン。現在、subversion と git でのみ動作しますが、より多くのリポジトリのサポートが計画されています。バージョン 0.0.3 から使用していますが、今のところ問題なく動作しています。

于 2010-01-18T16:15:23.880 に答える
38

Vogellaには最近(2010年1月のOPの質問と比較して2014年1月)、これに対する異なる見方があることに注意してください。SCM 同期構成プラグインが多くのコミットを生成できること
を考慮してください。 そのため、プラグインと自動化されたプロセスに頼る代わりに、彼は同じ機能を手動で管理しています。

JenkinsのJob情報をGitに保存する

コミットの量が少し多すぎることがわかったので、コミットを手動で制御し、Jenkins 構成ではなくジョブ情報のみを保存することにしました。
このために、Jenkins ジョブ ディレクトリ (Ubuntu: /var/lib/jenkins/jobs) に切り替えて、「<code>git init」コマンドを実行します。

.gitignoreGit ジョブ情報のみを保存するために、次のファイルを作成しました。

builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber
modules/
*.log

これで、自分の意志で変更を追加してコミットできるようになりました。
また、別のリモートを Git リポジトリに追加すると、構成を別のサーバーにプッシュできます。

Albertoは実際に追加することをお勧めします ( $JENKINS_HOME):

  • ジェンキンス自身の設定 ( config.xml),
  • jenkins プラグイン構成 ( hudson*.xml) および
  • ユーザー構成 ( users/*/config.xml)
于 2014-01-09T12:54:33.207 に答える
22

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

詳細については、この GitHub Gistこのブログ投稿を参照してください。

于 2011-01-14T20:30:25.623 に答える
14

探しているものを正確に実行する新しいSCM 同期構成プラグインがあります。

SCM Sync Configuration Hudson プラグインは、次の 2 つの主な機能を目的としています。

  • config.xml (およびその他のリソース) hudson ファイルを SCM リポジトリと同期し続ける
  • コミットメッセージを使用して、すべてのファイルに加えられた変更 (および作成者) を追跡します

私はまだこれを実際に試していませんが、有望に見えます。

于 2010-11-01T04:33:26.397 に答える
9

Jenkins のホーム フォルダー(例: )に構成ファイルがあります/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てください (必要に応じてカスタマイズします)。

# 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

次に追加しますgit add .gitignore

完了したら、ジョブ構成ファイルを追加できます。

shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a

最後に、必要に応じて他のファイルを追加してコミットし、構成ファイルを保持するリモート リポジトリにプッシュします。


Jenkins ファイルが更新されたら、それらをリロードする ( Reload Configuration from Disk ) かreload-configuration、Jenkins CLI から実行する必要があります。

于 2016-07-11T00:21:43.413 に答える
5

私が好む方法は、VCS に本当に入れたい構成ファイルを除いて、Jenkins ホーム フォルダー内のすべてを除外することです。ここ.gitignoreに私が使用するファイルがあります:

*
!.gitignore
!/jobs/*/*.xml
!/*.xml
!/users/*/config.xml
!*/

これは、( )それ自体、ジョブ/プロジェクト、プラグイン、およびその他の重要なユーザー構成ファイル*を除くすべて ( ) を無視します。!.gitignore

pluginsフォルダーを含めることも検討する価値があります。面倒な更新プラグインを含める必要があります...

基本的に、このソリューションにより、新しいファイルが自動的にスコープに含まれないため、将来の Jenkins/Hudson の更新が容易になります。本当に欲しいものを画面に表示するだけです。

于 2016-11-04T09:39:15.370 に答える
3

Mark からの回答 ( https://stackoverflow.com/a/4066654/142207 ) は、SVN と Git で機能するはずです (ただし、Git 構成は機能しませんでした)。

ただし、Mercurial リポジトリで使用する必要がある場合は、次のスクリプトでジョブを作成します。

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
于 2013-06-26T22:31:15.273 に答える
2

Jenkins の指示をソース管理にチェックできるプラグインを作成しました。.jenkins.yml内容を含むファイルを追加するだけです:

script:
    - make
    - make test

ジェンキンスはそれを行います:

ここに画像の説明を入力

于 2015-06-25T13:57:42.237 に答える
1

私はハドソンを完全にチェックインしました。これを出発点として使用できますhttps://github.com/morkeleb/continuous-delivery-with-hudson

hudson 全体を git に保持することには利点があります。すべての構成変更がログに記録されるため、1 台のマシンでテストを簡単にテストしてから、git pull を使用して他のマシンを更新できます。

これは、職場での hudson 継続的デリバリー セットアップのボイラープレートとして使用しました。

よろしくモーテン

于 2011-07-25T13:36:01.277 に答える