哈德森:按一个按钮在视图中运行所有作业

时间:2010-07-05 11:05:57

标签: continuous-integration hudson

有没有办法只需按一个按钮就可以在一个哈德逊的视图中运行所有作业?感谢。

2 个答案:

答案 0 :(得分:2)

更新:此处是解决方案

修改视图的说明并将此代码粘贴到其中:

<script type="text/javascript">
<!--
function triggerBuilds(obj){
    obj.responseText.evalJSON()['jobs'].each(
            function(i){
                new Ajax.Request(i['url']+'build',{method:'GET'});
            }
    );
}

function buildAll(){
    new Ajax.Request(
            document.URL.replace(/[\W]+$/,'') + '/api/json',
            {
                onSuccess : triggerBuilds,
                method : 'GET'
            }
    );
}

//-->
</script>
<a href="javascript:buildAll();void(0)">Build all Jobs in this view</a>

这将创建一个链接,使用hudson的JSON api在当前视图中构建所有作业。 (仅适用于视图,如果您想从其他地方使用它,则必须更改相对URL)。

(此解决方案依赖于当前版本的hudson中存在的原型,但我不知道它存在了多长时间,所以这可能不适用于旧版本)

或为此网址创建书签:

javascript:var%20f=function(obj){obj.responseText.evalJSON()['jobs'].each(function(i){new%20Ajax.Request(i['url']+'build',{method:'GET'});});};new%20Ajax.Request(document.URL.replace(/[\W]+$/,'')+'/api/json',{onSuccess:f,method:'GET'});void(0)
在您的书签菜单中

并在您喜欢的任何哈德逊视图上执行


编辑:我有elaborated on this answer on my weblog

答案 1 :(得分:0)

您可以定义父作业并使用它来启动所有子作业(具有依赖关系树的maven作业)。

结合Join Plugin,您甚至可以在以前的所有工作完成后设置工作。