Dan*_*dez 22 groovy jenkins cloudbees jenkins-pipeline
我在Jenkins by Clouldbees中使用了Pipeline插件(之前的名称是Workflow插件),我试图在Groovy脚本中获取用户名但我无法实现它.
stage 'checkout svn'
node('master') {
// Get the user name logged in Jenkins
}
Run Code Online (Sandbox Code Playgroud)
Jes*_*ick 42
您是否尝试安装Build User Vars插件?如果是这样,你应该能够运行
node {
wrap([$class: 'BuildUser']) {
def user = env.BUILD_USER_ID
}
}
Run Code Online (Sandbox Code Playgroud)
或类似的.
You*_*ank 14
使其适用于Jenkins管道:
安装用户构建变量插件
然后运行以下命令:
pipeline {
agent any
stages {
stage('build user') {
steps {
wrap([$class: 'BuildUser']) {
sh 'echo "${BUILD_USER}"'
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Daa*_*ker 11
没有插件就可以做到这一点(假设JOB_BASE_NAME并且BUILD_ID在环境中):
def job = Jenkins.getInstance().getItemByFullName(env.JOB_BASE_NAME, Job.class)
def build = job.getBuildByNumber(env.BUILD_ID as int)
def userId = build.getCause(Cause.UserIdCause).getUserId()
Run Code Online (Sandbox Code Playgroud)
还有一个getUserName,它返回用户的全名.
小智 11
这是一个略短的版本,不需要使用环境变量:
@NonCPS
def getBuildUser() {
return currentBuild.rawBuild.getCause(Cause.UserIdCause).getUserId()
}
Run Code Online (Sandbox Code Playgroud)
使用rawBuild要求它在一个@NonCPS块中.
def jobUserId, jobUserName
//then somewhere
wrap([$class: 'BuildUser']) {
jobUserId = "${BUILD_USER_ID}"
jobUserName = "${BUILD_USER}"
}
//then
println("Started By: ${jobUserName}")
Run Code Online (Sandbox Code Playgroud)
我们正在使用这个插件:构建用户变量插件。更多的变量可用。
小智 6
在没有 Build User 插件的情况下,这对我有用:
// get first entry of JSONArray
def buildCause = currentBuild.getBuildCauses()[0]
def buildPrincipal = [type:"unknown", name:""]
if (buildCause._class ==~ /.+BranchEventCause/) {
def branchCause = currentBuild.getRawBuild().getCause(jenkins.branch.BranchEventCause)
buildPrincipal = [type:"branch",name:buildCause.shortDescription]
} else
if (buildCause._class ==~ /.+TimerTriggerCause/) {
def timerCause = currentBuild.getRawBuild().getCause(hudson.triggers.TimerTrigger.TimerTriggerCause)
buildPrincipal = [type:"timer", name:"Timer event"]
} else
if (buildCause._class ==~ /.+UserIdCause/) {
def buildUserCause = currentBuild.getRawBuild().getCause(hudson.model.Cause.UserIdCause)
buildPrincipal = [type:"user", name:buildCause.userId]
} else
// ... other causes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36141 次 |
| 最近记录: |