Jenkins: добавление комментария в Jira-тикет после билда

By | 09/21/2018
 

Задача – добавлять комментарий в Jira-тикет после выполнения Jenkins-билда в scripted pipeline job.

Используем JIRA Pipeline Steps.

Докмументация и примеры – тут>>>.

Устанавливаем его – Manage Jenkins > Manage Plugins:

Настраиваем доступ к Jira – переходим в Manage Jenkins > Configure system, в JIRA Steps добавляем сайт:

Добавляем тестовую задачу:

node {
    
    echo "Run job"
    
    jiraAddComment idOrKey: 'BMEDIOS-198', comment: 'Test', site: 'TestSite'
    
}

Запускаем джобу:

Проверяем коммент в Jira:

Что бы получить текст коммита, в котором можно, например, передавать ID тикета в Jira, который надо обновить – используем sh и git log: – заносим stdout в переменную message, которую потом передаём в jiraAddComment comment:

node {
    
    echo "Run job"
    
    dir ('ci') {
        git branch: "master", url: "git@github.com:projectname/devops.git", credentialsId: "jenkins-github"
        commit = sh(returnStdout: true, script: 'git log -1 --pretty=%B').trim()
    }
    
    message = "Commit build:" + commit
    
    jiraAddComment idOrKey: 'BMEDIOS-198', comment: message, site: 'TestSite'
    
}

Результат:

Комментарий:

И тут же можно распарсить ID тикета из текста “[BMEDIOS-198] Test Jira plugin“, подставить его в переменную – и использовать в значении для idOrKey.

Аналогично – можно использовать стандартные переменные Jenkins типа $BUILD_NUMBER и т.д.

P.S. Ну или старый добрый curl:

curl -D- -u user:pass -X POST --data "@jira_api_test.json" -H "Content-Type: application/json" https://team.atlassian.net/rest/api/2/issue/BMEDIOS-198/comment

И файл jira_api_test.json с данными:

{ 
        "body": "curl test" 
}

Такой вариант можно использовать в post-step Freestyle-проекта, т.к. Jira Steps в нём не запустишь, а Jira Issue Updater завести не получилось пока.