jenkins无法完成执行"而真实"环

时间:2015-05-29 08:16:17

标签: linux bash shell ubuntu jenkins

我们使用自制的构建服务器(基于Ubuntu 12.04)来构建嵌入式Linux项目。我们通过ssh登录并执行构建脚本执行必要的构建工作,成功使用此服务器一段时间没有问题。

我们希望使用jenkins自动化构建。我们实际上认为这应该很容易,因为jenkins工作只需要调用构建脚本来完成这项工作。

然而,它失败并永远挂在构建脚本中的某个while循环上。 while循环看起来像这样(它用于接受来自make config的默认建议)

file:create.sh

[... other stuff]
Configure project sources ...

从其他脚本(build.sh)调用create.sh,该脚本再次从其他脚本(如simple-build.sh)调用。这是因为create.sh使用一些环境变量,这些变量由build.sh为特定的构建环境设置,而simple-build.sh调用build.sh脚本来为构建服务器设置环境。因此,构建者只需登录并调用" simple-build.sh"一切都在没有任何进一步设置的情况下完成。

如果从jenkins调用脚本,则控制台输出如下所示:

jenkins控制台输出

<script>
    $(document).ready(function() {
        var title = 'Tes ajax';
        var raw = 'very good';

        //Validate fields if required using jQuery

        var postForm = { //Fetch form data
            'api_key'     : 'bf_apikey',
            'api_username': 'username',
            'title'       : title,
            'raw'         : raw,
            'category'    :'categoryname'//Store name fields value
        };

        $.ajax({ //Process the form using $.ajax()
            type      : 'POST', //Method type
            url       : 'http://example.com/posts', //Your form processing file URL
            data      : postForm,           //Forms name
            dataType  : 'application/json',
            success:  updatesuccess,
            error: updatefailure
            // return response; // <- tried that one as well
        });
        function updatesuccess(result)
        {
            alert(result+"Successs")
        }

        function updatefailure()
        {
            alert("failure")
        }          

    });
</script>

然后......它永远挂起,直到在jenkins中手动中止进程才结束。如果删除while循环,例如取而代之的是一定量的睡眠和回声进入返回,它的工作原理。但是,最好不要更改构建脚本(在脚本中多次使用while循环方法)。

为什么这个while循环导致麻烦的任何想法?它甚至是while循环还是我们错过了其他的东西?

1 个答案:

答案 0 :(得分:1)

既然是工作,请在脚本中尝试“echo y”。我认为你的作品是期待你的,而你却什么都没有。

(while true ; do echo y; done
) | make config_config >> $WORKDIR/project.log 2>&1

由于