web-dev-qa-db-ja.com

ハドソンジョブを自動的に構成または作成する

以前の1つのジョブに基づいてもう1つのハドソンジョブで新しいハドソンジョブを作成する方法はありますか?

たとえば、新しいジョブの束を1つずつ作成する必要がある場合、異なるパラメーターを使用して同様の構成で4つのジョブを自動的に作成します

基本的にこのような手順

  1. sVNブランチを作成するsvn cpコマンドを呼び出して、スクリプトを使用してパラメーター化することができます
  2. 新しいsvnbranch名に基づいてビルドを作成します
  3. 後でタグを付ける

または、他の言葉で言えば、前のジョブのクローンを作成し、$ Branchが新しいジョブに入るたびに新しいブランチ名を付ける必要があります。

ありがとう

17
user161066

この種のタスクにはHudson Remote APIを試すことができます( Hudsonプロジェクトの設定 )。

たとえば、このチュートリアルを参照してください。ヘルプを非常に簡単に表示できることを忘れないでください。

Java -jar hudson-cli.jar -s http://your_Hudson_server/ help

alt text

したがって、ジョブをコピーするには:

Java -jar hudson-cli.jar -s http://your_Hudson_server/ copy-job myjob copy-myjob
12
VonC

次のようなGroovyシステムスクリプトを使用できます。

def jenkins = hudson.model.Hudson.instance
def template = jenkins.getItem("MyTemplate")
def job = jenkins.copy(template,"MyNewJob")
job.scm = new hudson.scm.SubversionSCM("http://base/branches/mybranche")
job.save()
7
vhardion

すでに他の回答でカバーされているようなものですが、config.xmlをコピーする簡単な方法は次のとおりです。

curl --user USER:PASS -H "Content-Type: text/xml" -s  
--data-binary "@config.xml" "http://hudsonserver:8080/createItem?name=newjobname"
7
Paul Andrew

Jenkins用のプラグインがあるようです。

https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

プラグインはまだテストしていません。ただし、プラグインが機能する場合は、ジョブを直接コピーして変数/値を変更することによる人的エラーの一部を軽減する必要があります。

2
Gerald
def jenkins = hudson.model.Hudson.instance
def template = jenkins.getItem("MyTemplate")
def job = jenkins.copy(template,"MyNewJob")
job.save()

これを使用しました。Groovyを使用してMyNewJobのパラメーター値を変更する必要があります。どうすればよいですか?

ex「Build_BranchName」というパラメータがあり、デフォルトは// perforce/mybranchです。//perforce/mynewbranchに変更する必要があります。

1
user2198560

GITを使用する場合(私のように、メインのSVNリポジトリをHudson/Jenkinsサーバーにミラーリングすると、うまく機能します)... .. Stephen Habermanの 受信後)を試すことができます。 -ハドソン

このフックは、Hudson継続的インテグレーションツールのブランチごとに新しいジョブを作成します。必要に応じてジョブを作成するだけでなく、プッシュしたユーザーがまだそこにいない場合は、ジョブのメーリングリストに追加されます。

いずれにせよ、そのスクリプトは、Jenkins(Hudson)をリモートコントロールする方法に関する新しいヒントを提供します。

0
inger

VonCが提供したオプションがあります(これはおそらく最も安全な方法ですが、{Hudson_Home}\jobsに新しいディレクトリを作成して(ディレクトリ名はジョブ名になります)、変更したものをコピーするだけで別のルートに移動することもできますconfig.xmlがあります。変更は基本的にSVNURLだけです。コピーするジョブからxmlをチェックアウトする必要があります。スクリプトを介してxmlファイルを変更する方法を確認する必要がありますが、これは二次的な問題です。 。

残念ながら、Hudsonを再起動するか、構成を強制的に再ロードする必要があります。 (構成を再ロードするには、http://:/ reloadページにアクセスしてください)。

0
Peter Schuetze