で無効にハドソンの自動予定をすべてでは一回しか出来ないのですか?
-
18-09-2019 - |
質問
して大きなハドソンの設定に多くの予定を走っています。現在のようにしているので、見つけるため正常に動作しない時には待ち時予定の構築に入りのキューに挿入しますがあるので、全て無効化予定のビルドのように集中できます私の面倒を構築せず、調整のcronの設定の各す。
解決
お伝えする準備を停止しております。
編集からOP (banjollity)
でないと思うことは合理的な"複数のマウスをクリック液をデフォルトのインストール"のような溶液、そのための受け入れの答えです。
- キュー仕
- 教えてハドソンの準備の停止などを実施しました。この防止その他の雇用されているを知ることができるからです。
- 診断層と私の仕事の為、新しいコードする が いいじゃないか初書きぐらい。(I love my job).
- キハドソンシャットダウンします。
- Gotoステップ1です。
他のヒント
'構成スライス' Iが貢献のプラグインが可能あなたは、同時に多くのジョブのcronの設定を変更します。これは、あなたが欲しい一括変更を行うことができるようにする必要があります。
Mikezx6rの提案時に拡大し、私はちょうどすべてが特定の文字列に一致ビルドを無効にするには、迅速な方法を思い付きました
[user@server jobs] $ for i in *build_name*; do sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done
また、「for」ループに特定のビルド名を反復処理でき
[user@server jobs] $ for i in build1 build2 build3; do sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done
あなたはsedの前に「エコー」を入れて何をするか確認するために最初にそれをテストすることができます:
[user@server jobs] $ for i in build1 build2 build3; do echo sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done
逆に、あなたはsedスクリプトの周りに切り替えることにより、一致するすべてのジョブを再度有効にすることができます:
[user@server jobs] $ for i in build1 build2 build3; do sed -i s/"disabled>true"/"disabled>false/" $i/config.xml; done
私はそれを行うための直接的な方法が表示されませんが、あなたはすべてのジョブのconfig.xmlを更新し、何かを書くことができます。
ハドソンの各ジョブのディレクトリでは、config.xmlにあります。 <プロジェクト>は、それによってそのビルドを無効にし、trueに更新することができることを無効と呼ばれる要素を持っています。
理想のない、しかし、あなたはディレクトリを歩くと無効の値を変更するためのスクリプトを持っていたら、あなたは常にそれを使用することができます。
似たようなの検索は、この質問に私をもたらした、と私はマイケル・ドノヒューの答えの別の利点(と彼が貢献したプラグイン)があります実現します。
と「構成スライス、」それはすべてを一度にあなたの仕事の一部を無効にするのは簡単です。それは私が8日に仕事ができるように、一時的に8つの関連の仕事の7を無効にするために必要な正確に何です。おかげでマイケル!
このはジェンキンスコンソールを使用して行うことができます。これは、Groovyのスクリプトを実行し、ほとんど何でも。
すべてのプロジェクトを通じてスクリプトの反復処理します。それはTimerTriggerを持っているかどうかをチェックします。
(一つは、他のトリガーのは、このチェックを拡張することができます)import hudson.model.Hudson
import hudson.model.Project
import hudson.triggers.TimerTrigger
import hudson.triggers.Trigger
import hudson.triggers.TriggerDescriptor
//All the projects on which we can apply the getBuilders method
def allProjects = Hudson.instance.items.findAll { it instanceof Project }
def projectsToWorkOn = [];
allProjects.each { Project project ->
Map<TriggerDescriptor, Trigger> triggers =
project.getTriggers();
triggers.each { trigger ->
if (trigger.value instanceof TimerTrigger) {
projectsToWorkOn.push(project)
}
}
}
projectsToWorkOn
.each { Project project ->
project.disable();
project.save()
}