Change By: Magnus Jacobsson (15/Aug/14 10:04 AM)
Description: Empty environment variables are deleted. Three methods tried:

1. Parameter
2. Generate environment variables from script
3. Inject environment variables to the build process

As can be seen from the log below, the non-empty variables MYVAR1, MYVAR3 & MYVAR5 works as expected, but the empty variables MYVAR2, MYVAR4 & MYVAR6 are not present in the environment when the job executes.

When looking at the enviroment through the left hand menu "Environment Variables" on the build page
,  all variables are present. You can actually also see that an implicit environment  varable  variable  TEST_NODE  are  is  also deleted.

I'm not
 sure  that the problem is in EnvInject. Feel free to move it to some other component.

Looks similar to JENKINS-15146.

log:
----
Started by user magjac
[EnvInject] - Loading node environment variables.
Building on master in workspace /srv/lhome/jenkins/jobs/empty_env_var_test/workspace
[workspace] $ /bin/sh -xe /tmp/empty_env_var_test6599764777552559363.sh
+ echo MYVAR3=world
+ echo MYVAR4=
[environment-script] Adding variable 'MYVAR4' with value ''
[environment-script] Adding variable 'MYVAR3' with value 'world'
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content 
MYVAR5=foo
MYVAR6=

[EnvInject] - Variables injected successfully.
[workspace] $ /bin/sh -xe /tmp/hudson101371634758484537.sh
+ env
JENKINS_HOME=/srv/lhome/jenkins
MAIL=/var/mail/smoker
USER=smoker
LC_TIME=en_DK.UTF-8
MYVAR1=hello
SHLVL=1
NODE_LABELS=master master_label null
HUDSON_URL=http://smoketest.netinsight.se/jenkins/
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64
MYVAR3=world
HOME=/home/smoker
BUILD_URL=http://smoketest.netinsight.se/jenkins/job/empty_env_var_test/6/
MYVAR5=foo
JENKINS_SERVER_COOKIE=dad1862e4df27e29
HUDSON_COOKIE=0cebdd7b-7b7f-4962-a07c-c1dc9a842ca6
LC_CTYPE=sv_SE.UTF-8
WORKSPACE=/srv/lhome/jenkins/jobs/empty_env_var_test/workspace
LOGNAME=smoker
BUILD_CAUSE=MANUALTRIGGER
_=/usr/bin/daemon
EXECUTOR_NUMBER=380
TERM=rxvt
BUILD_DISPLAY_NAME=#6
LC_COLLATE=sv_SE.UTF-8
HUDSON_HOME=/srv/lhome/jenkins
PATH=/home/smoker/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
BUILD_ID=2014-08-15_11-35-11
BUILD_TAG=jenkins-empty_env_var_test-6
DISPLAY=worabu.netinsight.se:0.0
JENKINS_URL=http://smoketest.netinsight.se/jenkins/
PYTHONUSERBASE=/home/smoker/.local
LANG=C
JOB_URL=http://smoketest.netinsight.se/jenkins/job/empty_env_var_test/
BUILD_NUMBER=6
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/_javascript_
SHELL=/bin/bash
HUDSON_SERVER_COOKIE=dad1862e4df27e29
LC_MEASUREMENT=sv_SE.UTF-8
JOB_NAME=empty_env_var_test
PWD=/srv/lhome/jenkins/jobs/empty_env_var_test/workspace
LC_NUMERIC=sv_SE.UTF-8
LC_PAPER=sv_SE.UTF-8
BUILD_CAUSE_MANUALTRIGGER=true
Finished: SUCCESS



menu "Environment Variables":
-----------------------------
_ /usr/bin/daemon
BUILD_CAUSE MANUALTRIGGER
BUILD_CAUSE_MANUALTRIGGER true
BUILD_DISPLAY_NAME #4
BUILD_ID 2014-08-15_10-40-44
BUILD_NUMBER 4
BUILD_TAG jenkins-magjac-999-dev-smoke-fw025-nosa3-4
BUILD_URL http://smoketest.netinsight.se/jenkins/job/magjac-999-dev-smoke-fw025-nosa3/4/
BUILD_USER magjac
BUILD_USER_FIRST_NAME magjac
BUILD_USER_ID magjac
CONFIG_FILE fw025.rc
DISPLAY worabu.netinsight.se:0.0
DO_COPY true
DO_INSTALL false
DO_PUBLISH false
DO_TEST true
EXECUTOR_NUMBER 324
EXIT_ON_FAILURE false
GIT_ROOT /home/magjac/git_repos2
HOME /home/smoker
HUDSON_HOME /srv/lhome/jenkins
HUDSON_SERVER_COOKIE dad1862e4df27e29
HUDSON_URL http://smoketest.netinsight.se/jenkins/
JENKINS_HOME /srv/lhome/jenkins
JENKINS_SERVER_COOKIE dad1862e4df27e29
JENKINS_URL http://smoketest.netinsight.se/jenkins/
JOB_NAME magjac-999-dev-smoke-fw025-nosa3
JOB_URL http://smoketest.netinsight.se/jenkins/job/magjac-999-dev-smoke-fw025-nosa3/
LANG C
LC_COLLATE sv_SE.UTF-8
LC_CTYPE sv_SE.UTF-8
LC_MEASUREMENT sv_SE.UTF-8
LC_NUMERIC sv_SE.UTF-8
LC_PAPER sv_SE.UTF-8
LC_TIME en_DK.UTF-8
LD_LIBRARY_PATH /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64
LOGNAME smoker
MAIL /var/mail/smoker
NETI_BUILDID testing
NODE_LABELS master master_label null
NODE_PATH /usr/lib/nodejs:/usr/lib/node_modules:/usr/share/_javascript_
PATH /home/smoker/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PWD /home/smoker
PYTHONUSERBASE /home/smoker/.local
SHELL /bin/bash
SHLVL 1
SUBSYSTEM nosa
TERM rxvt
TESTSUITE_RC testsuite.rc
TRACK dev/smoke
USER smoker
WORKSPACE /srv/lhome/jenkins/jobs/magjac-999-dev-smoke-fw025-nosa3/workspace



Configuration XML:
------------------
<?xml version="1.0" encoding="UTF-8"?><project>
  <actions/>
  <description/>
  <displayName>magjac-999-dev/smoke-fw025-nosa3</displayName>
  <logRotator class="hudson.tasks.LogRotator">
    <daysToKeep>100</daysToKeep>
    <numToKeep>-1</numToKeep>
    <artifactDaysToKeep>-1</artifactDaysToKeep>
    <artifactNumToKeep>-1</artifactNumToKeep>
  </logRotator>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.model.ParametersDefinitionProperty>
      <parameterDefinitions>
        <hudson.model.StringParameterDefinition>
          <name>NETI_BUILDID</name>
          <description>The build id of the build from dev/smoke to install. Normally of the form YYYY-MM-DD.N, but can also be the name of a symbolic link that will be resolved before the installation begins. Examples: 2013-01-29.0 or continuous.</description>
          <defaultValue>testing</defaultValue>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>TRACK</name>
          <description>Software track to test</description>
          <defaultValue>dev/smoke</defaultValue>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>SUBSYSTEM</name>
          <description>Subsystem to test</description>
          <defaultValue>nosa</defaultValue>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>dcpver</name>
          <description/>
          <defaultValue/>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>CONFIG_FILE</name>
          <description>pconf configuration file for testrunner.</description>
          <defaultValue>fw025.rc</defaultValue>
        </hudson.model.StringParameterDefinition>
        <hudson.model.BooleanParameterDefinition>
          <name>DO_INSTALL</name>
          <description>Install a repository on the node before running the tests
</description>
          <defaultValue>false</defaultValue>
        </hudson.model.BooleanParameterDefinition>
        <hudson.model.BooleanParameterDefinition>
          <name>DO_TEST</name>
          <description>Perform the actual test step.</description>
          <defaultValue>true</defaultValue>
        </hudson.model.BooleanParameterDefinition>
        <hudson.model.BooleanParameterDefinition>
          <name>DO_PUBLISH</name>
          <description>Publish the result to the CI server</description>
          <defaultValue>false</defaultValue>
        </hudson.model.BooleanParameterDefinition>
        <hudson.model.ChoiceParameterDefinition>
          <name>GIT_ROOT</name>
          <description>Root directory of the git clones. An Absolute path or a path relative to the Jenkins job workspace.

Clones of the relevant repositories must exist and have the same directory structure as on the git server http://git.netinsight.se

Normally the git clones are checked out to the job workspace by the Jenkins job itself.
</description>
          <choices class="java.util.Arrays$ArrayList">
            <a class="string-array">
              <string>/home/magjac/git_repos2</string>
              <string>/home/magjac/git_repos2</string>
            </a>
          </choices>
        </hudson.model.ChoiceParameterDefinition>
        <hudson.model.BooleanParameterDefinition>
          <name>EXIT_ON_FAILURE</name>
          <description>Stops further testing immediately when an error is detected.</description>
          <defaultValue>false</defaultValue>
        </hudson.model.BooleanParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>RF_TEST</name>
          <description>Overrride Robot Framework test cases to run by name or long name.</description>
          <defaultValue/>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>EXCLUDE_SYSTEST</name>
          <description>Exclude tests matching pattern from testsuite (using -x option to testrun.py).</description>
          <defaultValue/>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>INCLUDE_SYSTEST</name>
          <description>Include only tests matching pattern from testsuite (using -m option to testrun.py). Default is to include all tests.</description>
          <defaultValue/>
        </hudson.model.StringParameterDefinition>
        <hudson.model.BooleanParameterDefinition>
          <name>DO_COPY</name>
          <description>Updated the copied autobuilder repository in the smoketest storage area with info about the tests.
</description>
          <defaultValue>true</defaultValue>
        </hudson.model.BooleanParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>NODE_MODEL</name>
          <description>Node model, e.g. nimbra380, nimbra688, nimbraVA220, ...</description>
          <defaultValue/>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>TESTSUITE_RC</name>
          <description/>
          <defaultValue>testsuite.rc</defaultValue>
        </hudson.model.StringParameterDefinition>
      </parameterDefinitions>
    </hudson.model.ParametersDefinitionProperty>
    <EnvInjectJobProperty plugin="[email protected]">
      <info>
        <loadFilesFromMaster>false</loadFilesFromMaster>
      </info>
      <on>true</on>
      <keepJenkinsSystemVariables>true</keepJenkinsSystemVariables>
      <keepBuildVariables>true</keepBuildVariables>
      <contributors/>
    </EnvInjectJobProperty>
  </properties>
  <scm class="hudson.scm.NullSCM"/>
  <assignedNode>master</assignedNode>
  <canRoam>false</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Shell>
      <command>rm -rf infrastructure
if [ $GIT_ROOT = "." ]; then
    git clone ssh://[email protected]/infrastructure/ci-tools.git infrastructure/ci-tools
fi
$GIT_ROOT/infrastructure/ci-tools/bin/jenkins-run-smoketest
</command>
    </hudson.tasks.Shell>
  </builders>
  <publishers>
    <hudson.tasks.junit.JUnitResultArchiver>
      <testResults>test-result.xml, TEST-*.xml</testResults>
      <keepLongStdio>false</keepLongStdio>
      <testDataPublishers/>
    </hudson.tasks.junit.JUnitResultArchiver>
    <org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder plugin="[email protected]">
      <groovyScript>import hudson.model.*
def result = manager.build.result
def pa = new ParametersAction([
  new StringParameterValue("NETI_BUILD_RESULT", "${result}")
])
// add variable to current job
Thread.currentThread().executable.addAction(pa)
</groovyScript>
      <behavior>0</behavior>
    </org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder>
    <hudson.plugins.robot.RobotPublisher plugin="[email protected]">
      <outputPath>.</outputPath>
      <reportFileName>report.html</reportFileName>
      <logFileName>log.html</logFileName>
      <outputFileName>output.xml</outputFileName>
      <disableArchiveOutput>false</disableArchiveOutput>
      <passThreshold>100.0</passThreshold>
      <unstableThreshold>0.0</unstableThreshold>
      <otherFiles>
        <string>rf_tests/*/*.txt</string>
      </otherFiles>
      <onlyCritical>true</onlyCritical>
    </hudson.plugins.robot.RobotPublisher>
    <org.jenkinsci.plugins.postbuildscript.PostBuildScript plugin="[email protected]">
      <buildSteps>
        <hudson.tasks.Shell>
          <command>if [ "$EXECUTOR_NUMBER" != "-1" ]; then
    $GIT_ROOT/infrastructure/ci-tools/bin/jenkins-postbuild-smoketest
fi

</command>
        </hudson.tasks.Shell>
      </buildSteps>
      <scriptOnlyIfSuccess>false</scriptOnlyIfSuccess>
      <scriptOnlyIfFailure>false</scriptOnlyIfFailure>
    </org.jenkinsci.plugins.postbuildscript.PostBuildScript>
    <hudson.tasks.ArtifactArchiver>
      <artifacts>logs/*,rf_testlogs.tar,netsimlogs.tar,*nodeinfo*.tar,pconf_rc/*.rc, publish.xml</artifacts>
      <latestOnly>false</latestOnly>
      <allowEmptyArchive>false</allowEmptyArchive>
    </hudson.tasks.ArtifactArchiver>
    <hudson.plugins.summary__report.ACIPluginPublisher plugin="[email protected]">
      <name>publish.xml</name>
    </hudson.plugins.summary__report.ACIPluginPublisher>
    <hudson.tasks.Mailer plugin="[email protected]">
      <recipients>[email protected]#</recipients>
      <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>
      <sendToIndividuals>false</sendToIndividuals>
    </hudson.tasks.Mailer>
  </publishers>
  <buildWrappers>
    <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="[email protected]"/>
    <com.lookout.jenkins.EnvironmentScript plugin="[email protected]">
      <script>if [ -h /neti/smoketest/dev/smoke/$NETI_BUILDID ]; then
    # resolve symbolic link to actual build id
    NETI_BUILDID_RESOLVED=$(readlink /neti/smoketest/dev/smoke/$NETI_BUILDID)
else
    NETI_BUILDID_RESOLVED=$NETI_BUILDID
fi
echo NETI_BUILDID_RESOLVED=$NETI_BUILDID_RESOLVED
echo TEST_NODE=fw025
echo PUBLISH_CMD=/usr/local/bin/publish-smoketest
echo NETI_BUILD_NAME=dev/smoke
echo NETI_PHASE_NAME="3"
echo TEST_NODES=fw025
</script>
      <onlyRunOnParent>false</onlyRunOnParent>
    </com.lookout.jenkins.EnvironmentScript>
    <hudson.plugins.locksandlatches.LockWrapper plugin="[email protected]">
      <locks>
        <hudson.plugins.locksandlatches.LockWrapper_-LockWaitConfig>
          <name>node_fw025</name>
        </hudson.plugins.locksandlatches.LockWrapper_-LockWaitConfig>
      </locks>
    </hudson.plugins.locksandlatches.LockWrapper>
    <org.jenkinsci.plugins.builduser.BuildUser plugin="[email protected]"/>
  </buildWrappers>
</project>
    
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to