значение переменной не извлекается на этапе в конвейере Дженкинса - PullRequest
0 голосов
/ 15 октября 2019

У меня есть следующий скрипт для конвейера jenkins, где я пытаюсь получить успешный коммит git. Может кто-нибудь помочь мне, почему значение переменной не печатается?

 node(params.node)
   {

         try{          stage('fetchCommandOutput'){
                            dir('test'){

                                 powershell"""               
                                 def succesfulCommit=getCommandOutput("git rev-parse HEAD") //this is not working

                                 echo "git successful commit is " $succesfulCommit

                                 exit 0
                                 """
                                 }                         
                   }
     }
     catch(Exception e){
               echo e.toString()
     }

   }


   def getCommandOutput(cmd) {
       if (isUnix()){
          return sh(returnStdout:true , script: '#!/bin/sh -e\n' + cmd).trim()
       } else{
           stdout = bat(returnStdout:true , script: cmd).trim()
           result = stdout.readLines().drop(1).join(" ") 
           echo "result is ${result}"   \\\\this works fine
           return result
      } 
    }

1 Ответ

0 голосов
/ 15 октября 2019

Вы определили getCommandOutput(cmd) как функцию Groovy в своем конвейере. Следовательно, его вызов из шага powershell просто не будет работать. Переместите выражение def succesfulCommit=getCommandOutput("git rev-parse HEAD") и следующую строку кода за пределы шага powershell.

...