Сценарий Jenkins — groovy вернул код выхода 126

#jenkins #gradle #groovy #jenkins-pipeline #jenkins-groovy

#дженкинс #gradle #groovy #дженкинс-конвейер #дженкинс-заводной

Вопрос:

Я получил очень простой скрипт Groovy в Jenkins, запущенный в конвейере

Для этого кода:

 sh 'chmod  x gradlew'

sh './gradlew build --info'
  

Я получаю эту ошибку:

 [Pipeline] sh
  ./gradlew build --info
/var/jenkins_home/workspace/Pipeline with Gradle@tmp/durable-646d54ad/script.sh: line 1: ./gradlew: Permission denied
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 126
Finished: FAILURE
  

Чего я здесь не понимаю?

Комментарии:

1. Как выглядит Jenkinsfile блок вокруг этого? Что gradlew делается на высоком уровне?

Ответ №1:

Похоже, у него нет разрешения на запуск gradlew из вашего сообщения об ошибке.

line 1: ./gradlew: Permission denied

Вы можете сделать следующее:

  1. SSH на компьютер jenkins
  2. Переключиться на пользователя jenkins sudo su jenkins -
  3. Проверьте разрешения для файла gradlew с помощью команды ls -l /var/lib/jenkins/workspace/Pipeline with Gradle
  4. Запустите connand ./gradlew build --info с терминала и убедитесь, что он работает, прежде чем запускать задание снова

Я использую декларативные конвейеры с использованием groovy, и это работает нормально. На компьютере установлен grails, и пользователь jenkins может запустить команду. Я использую:

sh './gradlew dependencies amp;amp; ./gradlew assemble amp;amp; find ./ -name "*.war"'

Пожалуйста, добавьте комментарий, если у вас есть еще какие-либо вопросы…