Как вызвать задание Jenkins из-за изменения статуса в Jira
Некоторое время я искал способ вызвать задание Дженкинса из статуса или заявки / рассказа об изменении статуса Джиры. Чтобы дать более подробный пример, когда моя команда перемещает тикет в столбец "готов к тестированию", мы хотели бы иметь возможность запустить тестовый пакет здравомыслия в Дженкинсе, тогда идеальной ситуацией будет то, что мы сможем опубликовать результаты (в виде комментария к заявке в Jira. В противном случае мы хотели бы иметь возможность публиковать результаты как просто пройти / потерпеть неудачу.
Недавно я смотрел на плагин Jenkins Jira, но, похоже, он не обладает функциональностью, позволяющей работать в обоих направлениях, другими словами, он может публиковать результаты после выполнения задания, но вы не можете запустить задание из-за изменения статуса в Jira. Есть ли такой плагин в наличии или это то, что нам нужно будет создать самим?
Ура заранее
5 ответов
Итак, в основном, в jira есть веб-хуки ( https://developer.atlassian.com/jiradev/jira-architecture/webhooks). С его помощью вы можете настроить его для запуска конкретного URL при изменении состояния проблемы. Конкретный URL должен быть API-интерфейсом jenkins, например, для запуска сборки вы должны вызвать внешний URL-адрес, например (если вы строите с параметрами): http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value
Дополнительная информация https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
Я написал плагин Jenkins, который поддерживает триггер изменения статуса JIRA: jira-trigger-plugin.
Этот плагин также внедряет переменную окружения JIRA_ISSUE_KEY
, так что вы можете использовать эту информацию, чтобы опубликовать свой результат обратно в JIRA, например, используя REST API.
Пожалуйста, следуйте инструкциям ниже:
GIT:
Вы можете установить веб-хуки для git/ bitbucket /stash при коммите, inturn должен изменить состояние задачи в JIRA.
JIRA:
Однажды ты в JIRA. определить рабочий процесс для вашей задачи. В этом конкретном рабочем процессе вы можете установить пост-функцию, где веб-хук должен быть настроен. В этой конфигурации webhook в событиях определите JQL, как показано ниже:
status CHANGED FROM "To Do" TO "ready to test".
В том же самом упоминании работа, которая должна быть запущена в разделе URL.
Вы можете просматривать вебхуки в Jira:https://support.atlassian.com/jira-cloud-administration/docs/manage-webhooks/
Вам также необходимо добавить плагин Generic Webhook Trigger в ваш Jenkins:https://plugins.jenkins.io/generic-webhook-trigger/
Здесь вы можете найти пример того, как использовать плагин Generic Webhook Trigger с Bitbucket Github и Gitlab. https://github.com/jenkinsci/generic-webhook-trigger-plugin/tree/master/src/test/resources/org/jenkinsci/plugins/gwt/bdd
Он включал несколько шагов. Если вы используете Git/Stash/BitBucket (который я реализовал), вы можете просто
- настроить хуки коммитов в вашем Stash/Bitbucket
- Присоедините события к вашему рабочему процессу JIRA
- Jenkins JOB - события после сборки - настроить Notify
- Stash плагин Установите опрос SCM
это оно