Я создал метод, похожий на myWaitNodeMethod('some name')
:
def call(String nodeName) {
def computer = Jenkins.getInstance().getComputer(nodeName).getNode().toComputer()
computer.waitUntilOnline()
}
, который вызывается в начале конвейера, ожидающего полной доступности узла.Узел сконфигурирован в jenkins-ip:8080/computer
@Library('my-library') _
pipeline {
agent {
node {
'master'
}
}
environment { ... }
parameters { ... }
options { parallelsAlwaysFailFast() }
stages {
stage('Check status') {
steps {
script {
// start an EC2 instance as slave node and wait until it is fully available
myWaitNodeMethod('name-of-the-slave')
}
}
}
Этот метод, однако, иногда дает сбой с ошибкой типа:
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at hudson.model.Computer.waitUntilOnline(Computer.java:1560)
...
Возможно, поток потока на самом деле не захватывается из моегометод?Есть идеи, как это исправить?