首页 > 解决方案 > groovy 脚本似乎超时(詹金斯)

问题描述

我在使用 groovy 脚本时遇到了一些问题;

sh '''
    echo \'Starting script\';
    sleep 5;
    echo \'pwd\';
    sleep 5; 
    pwd;
    sleep 5;
    find / -name jenkins.war -type f;
    sleep 5;
'''

执行时间较长的命令总是会导致管道失败;除了所有命令find都成功运行。在日志(浏览器)中,在管道失败并显示消息之前显示了许多文件:

Jenkins build has status: FAILURE. Notifying  Bitbucket with state: FAILED.

问题是无法直接访问 jenkins 服务器(没有简单的方法来检查日志)。

我不确定我是否以正确的方式进行此操作,但是否有任何设置可能导致此类行为?

标签: jenkinsgroovyjenkins-pipelinejenkins-groovy

解决方案


有一种更优雅、更准确、更高效的方式来获取 Jenkins 的版本:

    stages {
        stage('Jenkins version') {
            steps {
                print "${Jenkins.getInstance().getVersion()}"
            }
        }
    }

控制台输出

...
[Pipeline] stage
[Pipeline] { (Jenkins version)
[Pipeline] echo
2.303.2
...

注意:getInstance()并且getVersion()必须得到 Jenkins 管理员的批准。

您还可以curl https://JENKINS_URL/about/提取包含<td>org.jenkins-ci.main:jenkins-war:2.303.2</td>.


推荐阅读