Jenkinsfile les variables utilisées dans les deux étapes distinctes

J'ai un pipeline de travail qui utilise deux nœuds distincts (un pour construire, l'un pour le test), et j'aimerais partager une variable entre deux de ces blocs de code dans mon Jenkinsfile. Je suppose que c'est possible, mais je suis très nouveau pour groovy et la Jenkinsfile concept. Voici le code pour l'instant:

node('build') {
    stage('Checkout') {
        checkout scm
    }
    stage('Build') {
        bat(script: 'build')
        def rev = readFile('result')
    }
}

node('test') {
    stage('Test') {
            def SDK_VERSION = "5.0.0001.${rev}"
            bat "test.cmd ${env.BUILD_URL} ${SDK_VERSION}"
            archiveArtifacts artifacts: 'artifacts/**/*.xml'
            junit 'artifacts/**/*.xml'
       }
}

Je veux attribuer le "rev" variable dans la phase de développement, mais ensuite concaténer à la SDK_VERSION variable dans la phase de Test. Mon erreur est:

groovy.lang.MissingPropertyException: No such property: rev for class: groovy.lang.Binding
Je pense que l'on peut définir simplement rev à l'extérieur de votre node blocs avec def rev = "". Puis c'est dans un contexte global et peut être utilisé à l'intérieur de votre node blocs.
Je pensais il y a un moyen global, mais à chaque fois que je l'ai regardé, les ressources ont tous souligné à réglage global des variables d'Environnement. Je viens aussi voulait s'assurer que j'étais à l'utiliser correctement. Merci!!!!

OriginalL'auteur user3270760 | 2017-02-03