Обновление заявок Jira из рабочего процесса Jenkins (jenkinsfile)

Как обновить задачу jira из файла Jenkinsfile (jenkins-worflow/pipeline )? Могу ли я использовать плагин Jira Issue Updater как шаг в Jenkinsfile?

Я знаю, что мог бы использовать Jira RestAPI, но я пытаюсь выяснить, могу ли я повторно использовать функции, предоставляемые jira-updater-issue.

То, что я ищу, похоже на приведенный ниже пример, вызывающий архиватор Junit и архиватор atifact, но вызывающий средство обновления jira.

    node {
      git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
      def mvnHome = tool 'M3'
      sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
      step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
      step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
    }

person portenez    schedule 04.02.2016    source источник


Ответы (4)


плагин Jira совместим с Pipeline.

Это должно работать:

step([$class: 'hudson.plugins.jira.JiraIssueUpdater', 
    issueSelector: [$class: 'hudson.plugins.jira.selector.DefaultIssueSelector'], 
    scm: [$class: 'GitSCM', branches: [[name: '*/master']], 
        userRemoteConfigs: [[url: 'https://github.com/jglick/simple-maven-project-with-tests.git']]]]) 

Вы можете получить полную ссылку во встроенном генераторе сниппетов конвейера.

person amuniz    schedule 27.02.2016

Плагин JIRA Steps предоставляет более декларативный способ обновите существующую заявку Jira:

node {
  stage('JIRA') {
    # Look at IssueInput class for more information.
    def testIssue = [fields: [ // id or key must present for project.
                               project: [id: '10000'],
                               summary: 'New JIRA Created from Jenkins.',
                               description: 'New JIRA Created from Jenkins.',
                               customfield_1000: 'customValue',
                               // id or name must present for issuetype.
                               issuetype: [id: '3']]]

    response = jiraEditIssue idOrKey: 'TEST-01', issue: testIssue

    echo response.successful.toString()
    echo response.data.toString()
  }
}

Поскольку вы хотите использовать Jenkinsfile для определения своего конвейера, это должно быть предпочтительным способом для вас...

person Dirk    schedule 19.06.2017

Поскольку это было для меня сложнее, чем должно быть, вот рабочий пример. Это обновит настраиваемое поле заявки с определенным значением:

step([$class: 'IssueFieldUpdateStep',
        issueSelector: [$class: 'hudson.plugins.jira.selector.ExplicitIssueSelector', issueKeys: ticket],
        fieldId: field,
        fieldValue: value
    ])

Генератор сниппетов мне не помог. Переменные билет, поле и значение являются строками. Начиная с этого, вы можете искать варианты здесь: https://www.jenkins.io/doc/pipeline/steps/jira/

person Frankenstein    schedule 24.03.2021

Да, кажется, эта страница отвечает на ваш вопрос:

https://wiki.jenkins-ci.org/display/JENKINS/Jira+Issue+Updater+Plugin

После установки плагина добавьте шаг сборки или шаг до/после сборки для вызова этого плагина.

Там вы можете указать URL-адрес REST для вашего сервера Jira, кредиты и JQL, чтобы найти проблемы.

person Somaiah Kumbera    schedule 05.02.2016
comment
Привет, спасибо, но я ищу пример использования jenkins-workflow dsl. Я думаю, что документы, на которые вы указываете, ссылаются на использование jira-updater из обычного (не рабочего) проекта, верно? Я имею в виду, он говорит вам, как использовать пользовательский интерфейс jenkins. Я ищу способ использовать его из рабочего процесса jenkinsfile. - person portenez; 05.02.2016
comment
Согласованный. Это не ответ. - person Joshua Davis; 02.09.2016