タイトルはほとんどそれを言います。リモート git リポジトリから Jenkins マルチブランチ パイプライン プロジェクトのビルドをトリガーするにはどうすればよいですか?
設定したトークンが保存されないため、「リモートでビルドをトリガーする」ビルド トリガー オプションが機能していないようです。
タイトルはほとんどそれを言います。リモート git リポジトリから Jenkins マルチブランチ パイプライン プロジェクトのビルドをトリガーするにはどうすればよいですか?
設定したトークンが保存されないため、「リモートでビルドをトリガーする」ビルド トリガー オプションが機能していないようです。
現時点 (Jenkins 2.22) では、「Trigger builds remote」ビルド トリガー オプションがマルチブランチ パイプライン ジョブ構成に表示されますが、機能しません (チェックしてトークンを指定すると、とにかく保存後にリセットされます)。これによると、トリガーを設定できないのは意図的なものですが、オプションとしてまったく表示されないというバグです。
同じスレッドで、マルチブランチ パイプライン プロジェクトの個々のプロジェクト (ブランチ) ごとにビルドをトリガーする方法を説明しています。私が必要としていたのは、トリガーを設定した後に作成されたブランチで機能する動的な設定でした。そのため、スレッドから提案されたエンドポイント (プロジェクトはジョブのブランチから作成されるため/job/project-name/job-name/build
、そうあるべきでした) ではなく、/job/job-name/project-name/build
使用するエンドポイントは/job/job-name/build
. これを機能させるには、API トークンを使用してユーザーを作成し (Jenkins の管理 -> ユーザーの管理 -> ギア アイコン -> API トークンの表示)、それらをリクエストでユーザー名とパスワードとして使用する必要があります。
Jenkins REST API の操作に慣れている人にとっては、解決策は明白かもしれませんが、マルチブランチ パイプライン プロジェクトと REST API の両方に慣れていない場合は、明示的に記述しても問題ありません。
クロス サイト リクエスト フォージェリ (CSRF) 保護を無効にしない場合、使用できるコマンドは次のとおりです。
crumb=$(curl -s 'http://USERNAME:API_TOKEN@JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
curl -X POST -H "$crumb" "http://USERNAME:API_TOKEN@JENKINS_URL/job/JOB_NAME/build"
大文字を適切な値に置き換えます。