1. 程式人生 > >jenkins與jira整合

jenkins與jira整合

一、外掛準備

1、jira中安裝外掛

Jenkins Integration for JIRA Server

2、Jenkins中安裝外掛

JIRA Integration for Jenkins
Jira Issue Updater
JIRA Pipeline Steps
JIRA plugin
JIRA Trigger Plugin
JiraTestResultReporter plugin
https://repository.marvelution.org/content/repositories/releases/org/marvelution/jji/assemblies/jenkins-jira-plugin/

二、jenkins中的配置

系統管理-系統設定-JIRA-Steps中新增JIRA sites並測試連線

 

Jira Trigger Configuration-輸入jira路徑及使用者名稱密碼

三、Jira中配置

1、新增應用程式連線:

應用程式-應用程式連結-輸入jenkins地址-建立新連結

配置傳出認證:點選編輯-傳出認證-基本訪問-輸入jenkins使用者名稱、密碼

2、配置Jenkins configuration:應用程式-Jenkins configuration-Add Site-輸入jenkins地址及使用者名稱密碼

3、新增網路鉤子:

設定-系統-WebHook-建立WebHook,填寫詳細資訊並設定觸發規則

其中url為http://你的Jenkins地址/jira-trigger-webhook-receiver/

四、jenkins中建立job

1、構建觸發器

跟jira相關的觸發器有兩類:

(1)Build when a comment is added to JIRA

JQL filter:指定觸發物件,project=WUZ指的是jira中專案關鍵字為WUZ的專案

Comment pattern:jira備註中填寫的comment,當用戶在jira中新增指定備註時,會觸發jenkins構建

Jenkins parameter:jenkins中的引數名稱

Issue attribute path:jira issue中提取出得需要傳給jenkins的屬性值

下圖樣例中,當關鍵字為"TES"的專案中添加了備註資訊:"build this please",將觸發jenkins構建,並將jira issue的ID傳給引數JIRA_ISSUE_KEY,可在後面的pipeline中呼叫;

(2)Build when an issue is updated in JIRA

JIRA fiels ID:變更項

Compare new value:新的狀態值

Compare old value:原始狀態值

下圖樣例中,選擇status作為jenkins構建的觸發項,即issue的狀態由TO DO 變更為In Progress時,觸發jenkins構建建,並將此時的issue狀態傳給引數JIRA_ISSUE_KEY1

3、編寫構建pipeline

node {
   stage('Preparation') { 
    echo "${WORKSPACE}"
    echo "${JIRA_ISSUE_KEY}"
   }
}
node {
  stage('TransitionIssue') {
    withEnv(['JIRA_SITE=jira1']) {
      def transitionInput =
      [
          transition: [
              id: '31'
          ]
      ]
      jiraTransitionIssue idOrKey:"${params.JIRA_ISSUE_KEY}" , input: transitionInput
    }
  }
}

4、樣例效果

jenkins編譯結果:

 

jira變更記錄: