代码之家  ›  专栏  ›  技术社区  ›  Chris Camaratta

如何从post步骤访问jenkinsfile本地环境变量?

  •  0
  • Chris Camaratta  · 技术社区  · 6 年前

    我试图在我的jenkinsfile中添加一个构建后步骤,以将标签应用于构建。Jenkins变量解析得很好,但是我在文件中全局定义的环境变量没有被解析。以下是相关信息:

    pipeline {
      environment {
        VERSION_MAJOR = '1'
        VERSION_MINOR = '0'
        VERSION_PATCH = '0'
      }
      stages {
        stage('Build') {
          steps {
            echo('Testing p4Tag')
          }
        }
      }
      post {
        success {
          build job: 'Copy-Installers',
            parameters: [
              // 
              string(name: 'MASTER_VERSION_MAJOR', value: '${VERSION_MAJOR}'),
              string(name: 'MASTER_VERSION_MINOR', value: '${VERSION_MINOR}'),
              string(name: 'MASTER_VERSION_FEATURE', value: '${VERSION_PATCH}'),
              string(name: 'MASTER_BUILD_NUMBER', value: '${BUILD_NUMBER}'),
              string(name: 'COMPONENT_NAME', value: 'Console')
        }
      }
    }
    

    下游生成失败。查看日志,似乎没有传入本地环境变量:

    The Build Number name is: ${VERSION_MAJOR}
    The Build Number name is: ${VERSION_MINOR}
    The Build Number name is: ${VERSION_PATCH}
    The Build Number name is: 924
    The Build environment name is: Console
    

    我也尝试过以下变化:

    • value: '${env.VERSION_MAJOR}' -与上述情况类似
    • value: '$VERSION_MAJOR' -与上述情况类似
    • value: $VERSION_MAJOR

    更新2

    引用自 stage 第节。例如,这是按预期工作的:

    stage('build') {
      sh('./Build/build-package.sh $VERSION_MAJOR $VERSION_MINOR $VERSION_PATCH $BUILD_NUMBER')
    }
    
    1 回复  |  直到 6 年前