J'aimerais avoir une instruction if dans mon étape d'échec {} sous l'étape post {}.

J'ai essayé les différentes manières suivantes :

    post {
        cleanup {
            cleanWs()
        }

        failure {
            step {
                script {
                    if ( JOB_NAME.contains("myjob") ) {
                        // do something
                    }
                }
            }
        }
    }

L'erreur est:

WorkflowScript: 372: Missing required parameter: "delegate" @ line 372, column 13.
               step {
               ^

Deuxième essai:

    post {
        cleanup {
            cleanWs()
        }

        failure {
            steps {
                script {
                    if ( JOB_NAME.contains("myjob") ) {
                        // do something
                    }
                }
            }
        }
    }

Erreur:

java.lang.NoSuchMethodError: No such DSL method 'steps' found among steps

Troisième tentative:

    post {
        cleanup {
            cleanWs()
        }

        failure {
            step (
                    if ( JOB_NAME.contains("myjob") ) {
                        // do something
                    }
                )
            }
        }
    }

Erreur:

WorkflowScript: 373: unexpected token: if @ line 373, column 21.
                       if ( JOB_NAME.contains("streampilot-ci") ) {

Quelqu'un sait-il comment obtenir correctement une instruction if dans la section fail{} ? J'utilise 2.204 ou Jenkins

1
Johnathan 30 janv. 2020 à 18:36

1 réponse

Meilleure réponse

Vous n'avez pas besoin d'un step dans les conditions. Consultez la documentation officielle.

post {
    cleanup {
        cleanWs()
    }
    failure {
        script {
            if ( JOB_NAME.contains("myjob") ) {
                // do something
            }
        }
    }
}
0
Michael Kemmerzell 31 janv. 2020 à 06:51