Хадсон: Запуск всех заданий в представлении нажатием одной кнопки - PullRequest
5 голосов
/ 05 июля 2010

Есть ли способ запустить все задания одним взглядом Гудзона, нажав всего одну кнопку? Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 июля 2010

Обновление: вот решение

Отредактируйте описание вашего представления и вставьте в него этот код:

<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>

Это создаст ссылку, которая создает все вакансиив текущем представлении, используя API-интерфейс JSON Хадсона.(Работает только с точки зрения, если вы хотите использовать его откуда-то еще, вам нужно изменить относительные URL).

(это решение основано на прототипе, который присутствует в текущих версиях Hudson, но я неНе знаю, как долго он присутствует, поэтому это может не сработать для более старых версий)

или создать букмарклет для этого 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)

в меню закладок и выполнить его на любомГудзон, вам нравится


Редактировать: у меня есть подробности этого ответа в моем блоге .

0 голосов
/ 05 июля 2010

Вы можете определить родительское задание и использовать его для запуска всех дочерних заданий (задания maven с деревом зависимостей).

В сочетании с плагином Join вы можете даже установитьЗадание, когда все предыдущие задания завершены.

...