Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-20942

SSH slave EnvInject do not work when connecting to Cygwin

XMLWordPrintable

      When using SSH slaves plugin to connect over SSH to a Cygwin machine
      the EnvInject scripts ignores bash as default shell.

      EnvInject scripts seems to use *.bat wrapper to run commands, but
      rather should use shell script wrapper similarly as shell builder - which works well.

      We use Jenkins Job Builder to generate jobs from YAML for both linux and windows platform. This bug breaks symmetry otherwise possible due to Cygwin.
      The only workaround is to fix windows jobs manually which is laborous and error-prone.

      Lower priority since I finally succeed to move our script from EnvInject
      to builder step.

      Output from a test job follows. This includes:

      • Prepare an environment for the run - script calling bash
      • Inject environment variables to the build process - script calling dir and echo
      • shell builder - calling 'pwd' (under bash)

      ---------------------------------
      Started by user Jan Brezina
      [EnvInject] - Loading node environment variables.
      [EnvInject] - Preparing an environment for the build.
      [EnvInject] - Keeping Jenkins system variables.
      [EnvInject] - Keeping Jenkins build variables.
      [EnvInject] - Executing and processing the following script content:
      c:/cygwin64/bin/bash -c "echo $PATH"

      [jenkins] $ cmd /c call C:\Users\jenkins\hudson536416728738181446.bat

      C:\cygwin64\home\jenkins\jenkins>c:/cygwin64/bin/bash -c "echo $PATH"
      /usr/local/bin:/usr/bin:/cygdrive/c/Program/ Files/ (x86)/MiKTeX/ 2.9/miktex/bin:%PATH%:/cygdrive/d/Dokumenty/Tex/TeXLive/bin/win32:/bin:/cygdrive/c/Program/ Files/Java/jre7/bin

      C:\cygwin64\home\jenkins\jenkins>exit 0
      [EnvInject] - Script executed successfully.
      [EnvInject] - Injecting contributions.
      Building remotely on Windows-Ales-Balvin in workspace C:\cygwin64\home\jenkins\jenkins\workspace\test_win
      [EnvInject] - Executing scripts and injecting environment variables after the SCM step.
      [EnvInject] - Executing and processing the following script content:
      dir
      echo "BUILD_NAME=${GIT_BRANCH##origin/}@${GIT_COMMIT:0:6}" >prop.file

      [test_win] $ cmd /c call C:\Users\jenkins\hudson3479905117661601674.bat

      C:\cygwin64\home\jenkins\jenkins\workspace\test_win>dir
      Svazek v jednotce C je OS.
      S�riov� ��slo svazku je 568F-8D02.

      V�pis adres��e C:\cygwin64\home\jenkins\jenkins\workspace\test_win

      10.12.2013 14:26 <DIR> .
      10.12.2013 14:26 <DIR> ..
      10.12.2013 14:26 56 prop.file
      Soubor�: 1, Bajt�: 56
      Adres���: 2, Voln�ch bajt�: 19�212�156�928

      C:\cygwin64\home\jenkins\jenkins\workspace\test_win>echo "BUILD_NAME=${GIT_BRANCH##origin/}@${GIT_COMMIT:0:6}" 1>prop.file

      C:\cygwin64\home\jenkins\jenkins\workspace\test_win>exit 0
      [EnvInject] - Script executed successfully.
      [test_win] $ sh -xe C:\Users\jenkins\hudson1493480721777491484.sh
      + pwd
      /home/jenkins/jenkins/workspace/test_win
      Finished: SUCCESS

            ifernandezcalvo Ivan Fernandez Calvo
            jbrezmorf Jan Brezina
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: