#jenkins #groovy #jenkins-pipeline #jenkins-groovy
#дженкинс #groovy #дженкинс-конвейер #дженкинс-groovy
Вопрос:
Я получаю сообщение об ошибке «команда не найдена» при выполнении приведенного ниже кода jenkns. Может кто-нибудь, пожалуйста, помочь мне решить эту проблему?
def myVariable = "foo"
pipeline {
agent none
stages {
stage ('npm publish on web package') {
agent {label 'master'}
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
script{
def pom = readMavenPom file: 'Project1/pom.xml'
sh "echo ${pom.version}"
sh 'ssh -tt admin@20.100.300.28 cd /opt/admin/projects/as/ amp;amp; echo "${myVariable}" >/opt/automation/projects/automation_suite/.version'
}
}
}
}
}
}
Журнал прилагается ниже. Это часть журнала, которая связана с ошибкой Дженкинса.
Commit message: "fff"
[Pipeline] withEnv
[Pipeline] {
[Pipeline] tool
[Pipeline] envVarsForTool
[Pipeline] withEnv
[Pipeline] {
[Pipeline] catchError
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] sh
1.1.39
/opt/software/jenkins/workspace/automation_suite/Test_Pipeline_2@tmp/durable-14b3d621/script.sh: line 1: 1.1.39: command not found
[Pipeline] }
[Pipeline] // script
[Pipeline] }
ERROR: script returned exit code 127
[Pipeline] // catchError
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
Комментарии:
1. Вы знаете, что
sh "${myVariable}"
=>sh "foo"
? Являетсяfoo
допустимой командой?2. извините за это. это моя ошибка при добавлении вопроса. ее не было в коде.
3. Теперь я повторно исправил код
4. Добавьте также полный журнал консоли.
command not found
не оставляет никаких сведений о том, какая команда может вызвать проблему.5. Добавлена часть журнала
Ответ №1:
Дважды проверьте свой код конвейера. Ошибка, которую вы видите, может быть вызвана
sh "${pom.version}"
В опубликованном вами примере используется
sh "echo ${pom.version}"
но если бы это было так, вы бы увидели что-то вроде этого в журнале консоли:
[Pipeline] sh
echo 1.1.39
1.1.39
[Pipeline] }
Ваш журнал консоли доказывает, что это не так, и вы ${pom.version}
sh
где-то явно переходите к команде.
[Pipeline] sh
1.1.39
/opt/software/jenkins/workspace/automation_suite/Test_Pipeline_2@tmp/durable-14b3d621/script.sh: line 1: 1.1.39: command not found