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

Var*_*ica 5 continuous-integration hudson

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

Sea*_*oyd 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>
Run Code Online (Sandbox Code Playgroud)

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

(这个解决方案依赖于当前版本的哈德森中存在的原型,但我不知道它已经存在了多久,所以这可能不适用于旧版本)

或为此 URL 创建一个书签:

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)
Run Code Online (Sandbox Code Playgroud)

在您的书签菜单中并在您喜欢的任何哈德逊视图上执行它


编辑:我已经在我的博客上详细阐述了这个答案