Не удается запустить команду Groovy sh в Jenkins - PullRequest
0 голосов
/ 29 января 2019

Я не могу запустить скрипты Groovy в Jenkins.Позвольте мне дать вам обзор моих настроек.

Я запускаю официальный образ докера Jenkins со следующим составом докера:

version: '2'
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    ports:
      - 8080:8080
    volumes:
      - ./home:/var/jenkins_home

Jenkins запущен и работает, как и должно.Я также установил плагин Groovy http://wiki.jenkins -ci.org / display / JENKINS / Groovy + плагин .

Теперь я попытался запустить простой скрипт на Groovy, например:

LSOUT = sh (
    script: 'ls -al',
    returnStdout: true
).trim()
echo "${LSOUT}"

Но я не могу заставить его работать.Это ошибка, которую я получаю:

Building in workspace /var/jenkins_home/workspace/test_groovy
[test_groovy] $ groovy /var/jenkins_home/workspace/test_groovy/hudson4423271822305767083.groovy
Caught: groovy.lang.MissingMethodException: No signature of method: hudson4423271822305767083.sh() is applicable for argument types: (java.util.LinkedHashMap) values: [[script:ls -al, returnStdout:true]]
Possible solutions: use([Ljava.lang.Object;), is(java.lang.Object), run(), run(), any(), use(java.util.List, groovy.lang.Closure)
groovy.lang.MissingMethodException: No signature of method: hudson4423271822305767083.sh() is applicable for argument types: (java.util.LinkedHashMap) values: [[script:ls -al, returnStdout:true]]
Possible solutions: use([Ljava.lang.Object;), is(java.lang.Object), run(), run(), any(), use(java.util.List, groovy.lang.Closure)
    at hudson4423271822305767083.run(hudson4423271822305767083.groovy:1)
Build step 'Execute Groovy script' marked build as failure
Finished: FAILURE

Groovy также устанавливается как пакет в контейнере.Есть идеи?

1 Ответ

0 голосов
/ 29 января 2019

У вас нет метода sh() по умолчанию в Groovy.Похоже, вам нужно сначала установить Pipeline Plugin (в нем есть компонент Pipeline: Groovy ).И тогда метод sh() будет доступен.

...