如何在Jenkins Pipeline工作中获取UID

Vad*_*kin 4 ubuntu-16.04 jenkins-pipeline

如何UID在詹金斯管道作业中访问变量?

null什么时候做的:

pipeline {

    agent any
    environment {
        def userId = "${env.UID}";
    }
    stages {
        stage('Print UID') { 
            steps {
                script {
                   echo "${userId}"
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jenkins托管在Ubuntu 16.04上

mko*_*bit 5

此代码在environment块范围内创建一个局部变量。

文档中environment目录使用“ setter”样式属性。您可以将代码更改为:

environment {
    userId = "${env.UID}";
} 
Run Code Online (Sandbox Code Playgroud)

这将使环境变量userId在管道的其他部分中可用(可以通过执行a sh 'env'或类似操作来证明)。

但是,在此之前,我不确定从何"${env.UID}"而来。如果您有插件,那么它将很好用。如果没有,那么您将必须弄清楚如何获得期望的价值。


小智 5

你可以使用这个代码。

environment {
    userId = sh(script: "id -u ${USER}", returnStdout: true)
}
Run Code Online (Sandbox Code Playgroud)

  • 实际上,你还应该调用 `.trim()` 。否则,“userId”变量将在末尾包含换行符,这可能会破坏您的“sh”调用。 (2认同)