Il est impossible de définir des étapes en dehors du pipeline déclaratif. L'objectif principal du pipeline déclaratif est de fournir une syntaxe simplifiée et argumentée afin que vous puissiez vous concentrer sur ce qui doit être fait (en utilisant certains des outils disponibles dans le pipeline déclaratif). étapes ) et non pas comment le faire.
Si vous êtes intéressé par une manière plus flexible de mettre en œuvre le pipeline, vous pouvez choisir Scripted Pipeline qui n'est pas très stricte en ce qui concerne la syntaxe - elle est seulement limitée par Groovy et le module d'exécution CPS.
Le pipeline de travail (scripté) de votre exemple ressemblerait à ceci :
#!groovy
def makeStage = {
stage('a') {
echo 'Hello World'
}
}
node {
makeStage()
}
Attention : Il n'y a pas steps
méthode à l'intérieur stage
dans un pipeline scénarisé. Si vous le laissez là, vous obtiendrez
java.lang.NoSuchMethodError: No such DSL method 'steps' found among
steps [archive, bat, build, catchError, checkout, deleteDir, dir,
dockerFingerprintFrom, ...
scripts dans le pipeline déclaratif
Pipeline déclaratif définit un script
étape qui vous permet de mettre un bloc de pipeline scripté. Cependant, il ne permet toujours pas de définir les étapes de manière dynamique ou/et d'extraire la définition des étapes vers une fonction ou une fermeture. script
est exécutée à l'intérieur de l'étape, donc vous ne pouvez pas contrôler à l'intérieur de ce bloc si l'étape est exécutée ou non. Dans certains cas cependant, cette étape peut être très utile si vous voulez faire quelque chose de plus complexe que de simplement appeler une étape prédéfinie d'un pipeline déclaratif.