在Jenkinsfile的Shell脚本中访问Jenkinsfiles中定义的变量

时间:2019-07-22 20:02:00

标签: unix jenkins groovy jenkins-pipeline jenkins-groovy

我正在Jenkinsfile的其中一个阶段中定义Shell脚本。如何使用shell脚本访问在Jenkinsfile中定义的变量?

在以下情况下,我将shell变量的值写入文件并读入groovy变量。有没有一种方法可以将数据从外壳传递到groovy而不将其写入文件系统?

unstash 'sources'

                    sh'''
                      source venv/bin/activate
                      export AWS_ROLE_ARN=arn:aws:iam::<accountid>:role/<role name>
                      layer_arn="$(awssume aws lambda list-layer-versions --layer-name dependencies --region us-east-1 --query \"LayerVersions[0].LayerVersionArn\" | tr -d '\"')"
                      echo $layer_arn > layer_arn
                    '''
                    layer_arn = readFile('layer_arn').trim()

1 个答案:

答案 0 :(得分:1)

  • 您可以打开命令行,提供变量值。
   sh "some stuff $my_var"
  • 您可以定义环境变量并在您的shell中使用它
withEnv(["MY_VAR=${my_var}") {
   sh 'some stuff'
}

致谢