21

タイトルはほとんどそれを言います。リモート git リポジトリから Jenkins マルチブランチ パイプライン プロジェクトのビルドをトリガーするにはどうすればよいですか?

設定したトークンが保存されないため、「リモートでビルドをトリガーする」ビルド トリガー オプションが機能していないようです。

4

4 に答える 4

19

現時点 (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 の両方に慣れていない場合は、明示的に記述しても問題ありません。

于 2016-09-14T12:11:57.443 に答える
4

クロス サイト リクエスト フォージェリ (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"

大文字を適切な値に置き換えます。

于 2017-12-22T09:11:08.463 に答える