質問

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

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

役に立ちましたか?

解決

最も役に立った回答

というプラグインがあります SCM 同期構成プラグイン.


元の回答

見て 私の答え 同様の質問に。基本的な考え方は、 ファイルシステム-scm-プラグイン XML ファイルへの変更を検出します。2 番目の部分では、変更を SVN にコミットします。

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

編集 2011-01-10 一方、新しいプラグインがあります。 SCM 同期構成プラグイン. 。現在、Subversion と git でのみ動作しますが、より多くのリポジトリのサポートが計画されています。私はバージョン 0.0.3 からそれを使用していますが、これまでのところうまく機能しています。

他のヒント

Vogella はこれについて最近 (OP の質問 2010 年 1 月と比較して 2014 年 1 月) と異なる見解を持っていることに注意してください。
次のように考えてください。 SCM 同期構成プラグイン 生成できる たくさんの コミットします。
そこで、プラグインや自動プロセスに依存する代わりに、同じ機能を手動で管理します。

Jenkinsのジョブ情報をGitに保存する

コミットの量が少し多すぎると感じたので、コミットを手動で制御し、Jenkins 設定ではなくジョブ情報のみを保存することにしました。
このために、Jenkins ジョブ ディレクトリ (Ubuntu: /var/lib/jenkins/jobs)を実行し、「git init" 指示。

私は以下を作成しました .gitignore Git ジョブ情報のみを保存するファイル:

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

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

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

  • ジェンキンス自身の設定 (config.xml),
  • jenkins プラグインの設定 (hudson*.xml) そして
  • ユーザーの設定 (users/*/config.xml)

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 要点 そして このブログ投稿 詳細については。

新しいものがあります SCM 同期構成プラグイン これはまさにあなたが探していることを行います。

SCM同期設定ハドソンプラグイン は、主に2つの特徴を目指している:

  • config.xml(およびその他のリソース)のハドソンファイルを SCMリポジトリ
  • すべてのファイルに加えられた変更 (および作成者) をコミット メッセージで追跡します

まだ実際には試していませんが、期待できそうです。

以下からの応答に触発

Aより正確.gitignore NEPA

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

これは.xmlの設定ファイルと.gitignore自体以外のすべてを無視します。 ( NEPA のさん.gitignoreとの違いは、それがすべてのトップレベルのディレクトリ(!*/)のような 『除外を解除』しないということですlogs/cache/、など。)

マークからの回答( 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
私は書いたプラグインのソース管理にあなたのジェンキンス命令を確認できています。ただ、内容で.jenkins.ymlファイルを追加します:

script:
    - make
    - make test

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

ここに画像の説明を入力します

私はあなたが起点 HTTPSとしてこれを使用することができ、完全にハドソンでチェック:// github.com/morkeleb/continuous-delivery-with-hudsonする

gitの全体ハドソンを維持するメリットがあります。すべての設定変更がログに記録され、あなたはgitのプルを使用して一台のマシン上で非常に簡単にtestupをテストし、他のマシン(複数可)を更新することができます。

私たちは、職場での私たちのハドソン連続配信設定のための定型としてこれを使用します。

よろしく モルテン

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top