2016-11-16 2 views
1

У нас есть Groovy скрипт для Jenkins с «Проверка» (configrmation) шаг:Дженкинс пользовательский ввод трубопровода - если Прервать то действие

... 
def deploy_prod_verify() { 

    stage 'Verify' 
    input id: 'Deploy', message: 'Is Blue node fine? Proceed with Green node deployment?', ok: 'Deploy!' 

} 
... 

Мой вопрос - все работает нормально (то есть - если нажать «! Развертывание» - начался следующий этап).

Но как я могу запустить другую функцию с Дженкинсом, если было нажато «Прервать»?

Теперь - Дженкинс просто прекратит текущую работу. Я бы хотел запустить другую функцию («откат»).

Я нашел документацию here, но ничего не вижу, что связано с действиями «Прервать».

Я вижу, что «Прервать» будет выполнять Ajax вызов:

<a href="#" onclick="new Ajax.Request('http://<JENKINS HOST>/job/EU-api-staging-build/72/input/Deploy/abort'); return false">Abort</a> 

И как я понял - нет никакого способа, чтобы справиться с этой Deploy/abort так или иначе.

ответ

0

Вы пробовали использовать catchError или try/catch? Не пробовал это сам, и не уверен, что это исключение вызывается при прерванном нажатии.

https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-error-code-error-signal

https://go.cloudbees.com/docs/support-kb-articles/CloudBees-Jenkins-Enterprise/How-to-abort-a-Pipeline-build-if-JUnit-tests-fail.html

2

После @ ответ MaTePe, вот как вы можете это сделать:

def deploy_prod_verify() { 
    stage ('Verify'){ 
     try { 
      input id: 'Deploy', message: 'Is Blue node fine? Proceed with Green node deployment?', ok: 'Deploy!' 
      do whatever you need... 
     } catch (error) { 
      If an error is caught... do this... 
     } 
    } 
} 
Смежные вопросы