Robin Jarry created JENKINS-13466: ------------------------------------- Summary: Custom environment variables not available when build started by an SCM change Key: JENKINS-13466 URL: https://issues.jenkins-ci.org/browse/JENKINS-13466 Project: Jenkins Issue Type: Bug Components: scm-sync-configuration Environment: not applicable Reporter: Robin Jarry Assignee: Frédéric Camblor Attachments: custom-env-master.jpg, custom-env-slave.jpg
Hi there, I may have found a sneaky bug. Custom environment variables can be defined by the user into the general & nodes config: !custom-env-master.jpg! !custom-env-slave.jpg! When a build is triggered by an SCM change, those variables are not available for SCM plugins. Let's say that I have a field in my SCM plugin configured with this value: *$\{JOB_NAME\}_$\{HOSTNAME}_$\{NODE_TYPE\}* If the build is triggered by an SCM change I get this error: {code} Started by an SCM change Building remotely on vmo426 [ClearCase] ### Begin source code retrieval ### cleartool error: Illegal characters found in view name : ${NODE_TYPE}. An environment variable may have not been resolved. Finished: FAILURE {code} Here is the code snipet from my plugin that does that: {code:Java} @Override public boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changelogFile) throws IOException, InterruptedException { try { logger.log("### Begin source code retrieval ###"); String resolvedViewName = build.getEnvironment(listener).expand(this.viewName); Pattern pattern = Pattern.compile("(\\$\\{.+?\\})"); Matcher matcher = pattern.matcher(resolvedViewName); if (matcher.find()) { String message = "Illegal characters found in view name : %s. " + "An environment variable may have not been resolved."; throw new ClearToolError(String.format(message, matcher.group())); } {code} I removed *$\{NODE_TYPE\}* from my SCM configuration to let the build continue. And the user custom environment variables seem to be injected into the build environment after the SCM checkout. {code} Started by an SCM change Building remotely on vmo426 [ClearCase] ### Begin source code retrieval ### ... [ClearCase] === End source code retrieval === [polling_linux] $ /bin/sh -xe /tmp/hudson7589128551511062241.sh + env ... NODE_TYPE=SLAVE ... {code} Could this be fixed? :) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira