Задача – добавлять комментарий в 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: "[email protected]: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
:
[simterm]
$ 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
[/simterm]
И файл jira_api_test.json
с данными:
{ "body": "curl test" }
Такой вариант можно использовать в post-step Freestyle-проекта, т.к. Jira Steps в нём не запустишь, а Jira Issue Updater завести не получилось пока.