Jenkins+webhookマルチプロジェクトマルチ環境の区別


私の方法は webhook urlに持ち込む ブランチ名で管理する
  • jenkinsカード取付
  • jenkinsのwebhook urlを取得
  • api token
  • url

  • git倉庫のwebhookの配置
  • jenkinsプロジェクトの構成
  • カード変数解析紹介
  • 項目変数
  • 環境変数
  • filter追加
  • 参考資料

  • Jenkinsプラグインのインストール
    jenkinsへの ページ、インストールGeneric Webhook Triggerプラグイン
    jenkinsのwebhook urlを取得
    api token
    Jenkinsの ページへ、あなたが設定するユーザーを見つけて、見つけてAPI Token一つ、得てUser IDAPI Tokenurl
    Jenkinsのwebhookアドレスのつなぎ方は以下の通りです.
    http://<User ID>:<API Token>@<Jenkins IP  >:  /generic-webhook-trigger/invoke
    
    

    gitウェアハウスのwebhookの構成
    こちらはコードクラウドを使っていますが、コードライブラリのsetting->webhookwebhookを追加できます
    記入する情報が3つあります
  • url上記で得られたurlを記入
  • 選択push方法
  • passwordあなたが使っているjenkinsユーザーのパスワード
  • urlはプロジェクト情報を持っているので、urlは
    http://<User ID>:<API Token>@<Jenkins IP  >:  /generic-webhook-trigger/invoke?project=   
    
    

    jenkinsプロジェクトの構成
    プラグイン変数解析の概要
    jenkinsのitemsのconfigureページに行って、見つけてBuild Triggers、選択Generic Webhook TriggerWebhookは実はネットワークリクエストなので、プラグインは3つの変数をサポートしています.
  • postが持ってきたbodyパラメータ
  • headerパラメータ
  • url後のrequestパラメータ
  • プロジェクト変数
    Projectはrequestパラメータに入っているのでBuild Triggersひとつ追加Request parameters、記入
  • Request parameterに記入projecturlに対応するパラメータ
  • かんきょうへんすう
    環境変数はコードクラウドからデフォルトで渡されたbodyに存在するrefフィールドを通じて、具体的なコードクラウドWebhookから送られてきたbodyはこのリンクを見ることができ、異なるコードライブラリは大同小異である.
    だからここにもう一つPost content parameters
  • Variable記入ref
  • Expression記入$.ref、ここ$body全体を表す.json里層データの取得
  • 選択JSONPath方式
  • フィルタの追加
    変数が取得されると、filterで条件を満たすWebhookトリガ配置を取得する必要があります.
    現在配置Optional filter、ここでは複数の変数をスペースで区切ります
  • Expression記入^(refs/heads/git ) ( )$
  • Text記入$ref $project
  • ここまででdebugができ、コードを更新するとwebhookがJenkinsのプロジェクトを自動的に構築するようにトリガーされます!
    参考資料
  • Generic Webhook TriggerプラグインによるJenkins+WebHooks(コードクラウド)持続統合
  • jenkinsのgit上の文書
  • コードクラウドのwebhook説明ドキュメント