Хадсон CI: как удалить все вакансии? - PullRequest
20 голосов
/ 22 февраля 2011

У меня около 100 заданий на моем Хадсоне, можно ли их массово удалить?

Ответы [ 4 ]

42 голосов
/ 19 января 2012

Самый простой способ, ИМХО, - использовать скрипт. Перейти к http://your.hudson.url/script/

Удалить задания, запустив:

for(j in hudson.model.Hudson.theInstance.getProjects()) {
    j.delete();
}

И этот способ дает вам возможность легко использовать условие, чтобы отфильтровать задания для удаления.


ДЛЯ ДЖЕНКИНОВ

Текущие версии (2.x):

for(j in jenkins.model.Jenkins.theInstance.getAllItems()) {
    j.delete()
}

Старые версии:

for(j in jenkins.model.Jenkins.getInstance().getProjects()) {
    j.delete();
}
14 голосов
/ 22 февраля 2011

Просто удалите каталоги заданий:

cd $HUDSON_HOME/jobs
rm -rf <JOB_NAME>

См .: Администрирование Hudson

7 голосов
/ 22 февраля 2011

Вы можете программно использовать XML API (или использовать JSON-вариант, если хотите):

http://your.hudson.url/api/xml?xpath=//job/name&wrapper=jobs

Возвращает:

<jobs>
    <name>firstJob</name>
    <name>secondJob</name>
    <!-- etc -->
</jobs>

Теперь перебираем имена заданий и отправляем запрос на

 http://your.hudson.url/job/your.job.name/doDelete

(Вы можете сделать это с любым языком программирования, который поддерживает XML и HTTP)

3 голосов
/ 26 июля 2013

У меня были похожие проблемы с управляемостью с экземпляром Hudson, на котором выполнялось более 500 заданий сборки - было непрактично вручную поддерживать такое количество заданий с помощью графического интерфейса. Тем не менее, вы можете предоставлять задания в Hudson удаленно и программно, используя CLI - который поставляется в виде файла jar [http://wiki.hudson -ci.org / display / HUDSON / Hudson + CLI] .

The command to delete a job would be something like:
**java -jar hudson-cli.jar -s http://host:port/ delete-job jobname**

And the rest of the commands you will need are here:
**java -jar hudson-cli.jar -s http://host:port/** help

Я обернул cli в python и создал XML-файл, из которого будет храниться конфигурация сборки - тогда я мог использовать это для манипулирования моими запущенными экземплярами Hudson. Это также обеспечивало возможность «сбрасывать» экземпляр CI обратно в известную конфигурацию - удобно, если вы подозреваете, что сбои сборки были вызваны ручными изменениями в пользовательском интерфейсе или если вы используете разные серверы CI для каждой среды, в которой вы развертываете (т.е. dev , test, prod) и необходимо предоставить новый.

Это также вывело меня из-под контроля, когда плохо написанные плагины исказили собственный XML Хадсона, и мне нужно было перестроить мои экземпляры. Hudson также связан с вводом / выводом, и для действительно загруженных экземпляров часто быстрее загружать Hudson с нуля и заполнять его конфигурацию таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...