Запустите groovy скрипт из скрипта bash - PullRequest
0 голосов
/ 22 мая 2018

Я хочу запустить скрипт Groovy из скрипта bash.

У меня есть отличный скрипт, который создает нужную мне переменную из jenkins.(Весь CI почему-то написан на bash).

Мне нужно запустить его в Groovy, потому что я не могу воспроизвести его в bash.

Итак, мой bash-код выглядит так:

LAST_SUCCESSFUL_BUILD_DATE=$(groovy scripts/jenkins-lastbuild-date.groovy)

Groovy-скрипт находится в папке скриптов, и он выглядит так:

#!/usr/bin/env groovy
import jenkins.model.Jenkins

def envVars = Jenkins.instance.getGlobalNodeProperties()[0].getEnvVars()

// the job name is a global Jenkins variable, so I get it from there
def item = Jenkins.instance.getItem(envVars['JOB_NAME'])

def  ff=item.getLastSuccessfulBuild()
println ff.getTime().format("yyyy-MM-dd")

но когда я его запускаюЯ получаю ошибку

line 254: groovy: command not found

есть идеи?Мне нужно получить дату последнего успешного коммита.

1 Ответ

0 голосов
/ 23 мая 2018

Это похоже на проблему с переменными среды, так как вы пытаетесь локализовать groovy, используя env в shebang.

Я бы сделал две вещи:

  1. Узнайте, где установлен groovy

Перейдите на сервер и попробуйте запустить:

mbp:~ jhartman$ which groovy
/usr/local/bin/groovy
Затем замените 1-ю строку вашего сценария точным местоположением:
#!/usr/local/bin/groovy
import jenkins.model.Jenkins

С наилучшими пожеланиями, Ярек

...