在Jenkinsfile中传递从shell提取的变量

vin*_*n84 3 jenkins jenkins-pipeline

我试图在阶段之间传递在Jenkinsfile的阶段中提取的变量。例如:

   stage('Dummy Stage') {
    sh '''#!/bin/bash -l
        export abc=`output of some command`
        .....
        .....
       '''
Run Code Online (Sandbox Code Playgroud)

现在,如何将变量abc传递到后续阶段?我尝试通过在文件顶部添加def部分来设置变量,但看起来不起作用。在没有更整洁的方式的情况下,我必须重新输入命令

Mic*_*ael 5

这是我要获取的master上的提交次数作为全局环境变量的操作:

pipeline {

    agent any

    environment {
        COMMITS_ON_MASTER = sh(script: "git rev-list HEAD --count", returnStdout: true).trim()
    }

    stages {

        stage("Print commits") {
            steps {
                echo "There are ${env.COMMITS_ON_MASTER} commits on master"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)