sh: sh: command not found

69 views
Skip to first unread message

Andrei Suslov

unread,
Feb 14, 2023, 1:20:08 PM2/14/23
to Jenkins Users
I'm trying to run this pipeline script:
def getAgentMachine() {
  def agentMachine
  switch(params.agentMachine) {
      case "cloud1": agentMachine = "cloud1"; break
      case "mac1": agentMachine = "mac1"; break
  }
  return agentMachine
}

def getOs(){
  if (agentMachine.contains("mac")) {
    return "macosx"
  } else {
    return "windows"
  }
}

def printWorkingDirectory(){
    String os = getOs();
    if (os == 'windows'){
        bat 'chdir'
    } else {
        sh 'pwd'
    }
}

def listFiles(){
    String os = getOs();
    if (os == 'windows'){
        bat 'dir'
    } else {
        sh 'ls -l'
    }
}

def cmd_exec(command) {
    return bat(returnStdout: true, script: "${command}").trim()
}

def getProjectName() {
    return params.projectName
}

pipeline {
  agent {
    // label params.agentMachine == "any" ? "" : params.agentMachine
    label "mac1"
  }
  parameters {
    string(
      name: "agentMachine",
      defaultValue: "mac1",
      description: "Select the agent machine to run the project on"
    )
    string(
      name: "projectName",
      defaultValue: "Auto_MC",
      description: "Provide the project to copy"
    )
  }
  stages {
    stage("Start services") {
      steps {
        sh('pwsh -version')
        echo "Agent machine is [${getAgentMachine()}]"
        echo "OS is [${getOs()}]"
        echo "1. Project name is [${getProjectName()}]"
        script {
          projectNameToCopy = getProjectName().trim()
        }
        powershell """
        write-host (Get-Item .).FullName -fore green
        write-host "2. Project name: " ${projectNameToCopy} -fore green
        """
      }
    }
  }
}

The output is:

Started by user Andrei Suslov
[Pipeline] Start of Pipeline
[Pipeline] node
Running on a51-wg7-mac1 in /Library/Automation/slave/jenkins/workspace/123
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Start services)
[Pipeline] sh
sh: sh: command not found
wrapper script does not seem to be touching the log file in /Library/Automation/slave/jenkins/workspace/123@tmp/durable-b0720b96
(JENKINS-48300: if on an extremely laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400)
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code -1
Finished: FAILURE


I tried to look for a solution: people suggest to delete PATH variable (it's not there already, so I guess someone else deleted it) and introduce PATH+EXTRA variable, but I don't know what value to assign to it...
Reply all
Reply to author
Forward
0 new messages