BUILD_USER_ID устанавливается, только если сборка имеет UserIdCause:
https://github.com/jenkinsci/build-user-vars-plugin/blob/master/src/main/java/org/jenkinsci/plugins/builduser/BuildUser.java#L84-L88
UserIdCause userIdCause = (UserIdCause) build.getCause(UserIdCause.class);
if(new UserIdCauseDeterminant().setJenkinsUserBuildVars(userIdCause, variables)) {
return;
}
https://github.com/jenkinsci/build-user-vars-plugin/blob/master/src/main/java/org/jenkinsci/plugins/builduser/varsetter/impl/UserIdCauseDeterminant.java#L42
public boolean setJenkinsUserBuildVars(UserIdCause cause,
Map<String, String> variables) {
if(null != cause) {
String username = cause.getUserName();
UsernameUtils.setUsernameVars(username, variables);
String userid = StringUtils.trimToEmpty(cause.getUserId());
variables.put(BUILD_USER_ID, userid);
Если сборка была запущенаот SCMTrigger у вас не будет BUILD_USER_ID.вместо этого вы бы имели BUILD_USER:
https://github.com/jenkinsci/build-user-vars-plugin/blob/master/src/main/java/org/jenkinsci/plugins/builduser/BuildUser.java#L78
// set BUILD_USER_NAME to fixed value if the build was triggered by a change in the scm
SCMTrigger.SCMTriggerCause scmTriggerCause = (SCMTrigger.SCMTriggerCause) build.getCause(SCMTrigger.SCMTriggerCause.class);
if (new SCMTriggerCauseDeterminant().setJenkinsUserBuildVars(scmTriggerCause, variables)) {
return;
}
https://github.com/jenkinsci/build-user-vars-plugin/blob/master/src/main/java/org/jenkinsci/plugins/builduser/varsetter/impl/SCMTriggerCauseDeterminant.java#L15
public boolean setJenkinsUserBuildVars(SCMTriggerCause cause,
Map<String, String> variables) {
if (cause != null) {
UsernameUtils.setUsernameVars("SCMTrigger", variables);
return true;
} else {
return false;
}
}
https://github.com/jenkinsci/build-user-vars-plugin/blob/master/src/main/java/org/jenkinsci/plugins/builduser/utils/UsernameUtils.java#L28
public static void setUsernameVars(String username, Map<String, String> variables) {
variables.put(BUILD_USER_VAR_NAME, username);
variables.put(BUILD_USER_FIRST_NAME_VAR_NAME, getFirstName(username));
variables.put(BUILD_USER_LAST_NAME_VAR_NAME, getLastName(username));
}
преодолетьэто, вы можете проверить, существует ли BUILD_USER_ID до его использования.