从bash脚本运行groovy脚本

时间:2018-05-22 19:05:28

标签: bash jenkins groovy continuous-integration cd

我想从bash脚本中运行Groovy脚本。

我有一个groovy脚本,正在创建一个我需要的变量来自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 :(得分:0)

这似乎是环境变量的一个问题,因为你试图在shebang中使用env本地化groovy

我会做两件事:

  1. 获取安装groovy的详细信息
  2. 转到服务器并尝试运行:

    mbp:~ jhartman$ which groovy
    /usr/local/bin/groovy
    
    1. 然后将脚本的第一行替换为确切的位置:
    2. #!/usr/local/bin/groovy
      import jenkins.model.Jenkins
      

      祝你好运, 亚雷克