Как запустить команду оболочки в JIRA скрипт бегун Groovy - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь настроить триггер сборки Jenkins из пост-функции скрипта Groovy Jira

Вот мой Groovy код:

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.fields.CustomField;
import com.onresolve.scriptrunner.runner.util.UserMessageUtil

def WANITOPUSHField =  ComponentAccessor.getCustomFieldManager().getCustomFieldObject(10802);//customfield id
def WANITOPUSHValue = issue.getCustomFieldValue(WANITOPUSHField);
def SelectVersionField = ComponentAccessor.getCustomFieldManager().getCustomFieldObject(10805);//customfield id
def SelectVersionValue = issue.getCustomFieldValue(SelectVersionField);

if(WANITOPUSHField != null) {
    if(WANITOPUSHValue.toString() == 'Yes') {
       'curl --user USERNAME:PASSWORD  "http://JENKINS_URL/job/deploy-dev-test/buildWithParameters?token=MYTOCKEN&ENV=1"'.execute()
       UserMessageUtil.success("Jenkins Build started ");

    } else {
        UserMessageUtil.success("Condition Not sucsess "+WANITOPUSHValue.toString());
    }
}

Здесь я использовал команду curl для запуска сборки Jenkins, если статус билета Jira изменился, но команда curl здесь не работает

Выдает вывод на окно предупреждения

java.lang.UNIXProcess@4d0c79da

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

1 Ответ

0 голосов
/ 02 ноября 2018

«что-то» .execute () возвращает экземпляр Java-класса UNIXProcess. Когда метод toString () не переопределен, вы увидите что-то вроде java.lang.UNIXProcess@4d0c79da

Вот код, который поможет вам получить вывод команды оболочки:

def command = 'curl --user USERNAME:PASSWORD  "http://JENKINS_URL/job/deploy-dev-test/buildWithParameters?token=MYTOCKEN&ENV=1"'
def proc = command.execute()
proc.waitFor()              

println "Process exit code: ${proc.exitValue()}"
println "Std Err: ${proc.err.text}"
println "Std Out: ${proc.in.text}"
...