わかりました、探していたものを見つけました (私は報奨金です。私のケースは特定のブランチを持つ Mercurial です)。
main/origin リポジトリに、目的のビルド スクリプトを含むフックを配置します。Pregroupchange
入ってくる変更を維持することです。メインリポジトリにロードコードがインストールされており、それ自体に独自のフックがあります。
このようにして、Jenkins を引き続きトリガーし、rhodecode プッシュ通知などのトリガーの後に変更を加えます。
[hooks]
pregroupchange = /path/to/script.extention
スクリプトに、Jenkins のトリガーでもある目的のアクションを配置します。Jenkins:Job:Configure:Build Triggers:checkbox
リモートでトリガービルドを有効にすることを忘れないでください+ここにあなたのdesired_token
(私の場合:Mercurial)を入れてください。
Mercurial では特定のブランチだけをトリガーすることはできないため、このようにしてブランチ名を見つけました。また、リモート スクリプトからトリガーするには、Jenkins で匿名全体の読み取りアクセス許可を付与するか、資格情報を持つ特定のユーザーを作成してトリガー URL に配置する必要があります。
バッシュの例:
#!/bin/bash
BRANCH_NAME=`hg tip --template "{branch}"`
if [ $BRANCH_NAME = "branch_name" ]; then
curl --silent http://jenkins_domain:port/path/to/job?token=desired_token
fi
元の質問の場合:
このようにして、目的のブランチに対して 1 つのビルドのみを実行します。フックは、複数のクローンおよび複数の開発者と作業する場合に備えて、メイン リポジトリのみを対象としています。ローカル フックがあるかもしれませんが、開発者ごとにローカルから Jenkins をトリガーしないでください。プッシュ (commit、incoming、および groupchange) が来たときに、メイン リポジトリからのみ Jenkins をトリガーします。ローカル フックは、電子メール、ログ、構成などの他のもの用です。