Question

Nous avons un grand Hudson a mis en place avec de nombreux prévu builds courir tout le temps. Actuellement, je suis en train d'obtenir une construction pour fonctionner correctement, mais je dois attendre de temps en temps quand une construction prévue entre dans la file d'attente. Est-il possible de désactiver tous les builds prévu pour que je puisse me concentrer sur ma construction gênants, sans modifier les paramètres « Cron » de chaque construction individuelle?

Était-ce utile?

La solution

Dites-lui de se préparer à arrêter.


Modifier dans OP (banjollity)
Ce n'est pas parfait, mais je pense que cela est une « solution de quelques clics de souris avec une installation par défaut » raisonnable type de solution, d'où la réponse acceptée.

  1. file d'attente un emploi
  2. Dites-Hudson de se préparer à arrêter. Cela empêche les autres emplois en cours d'exécution dans l'intervalle.
  3. Diagnostiquer les défauts avec mon travail, engagement nouveau code peut fixer. (J'aime mon travail).
  4. Annuler Hudson a fermé.
  5. Aller à l'étape 1.

Autres conseils

Le plug-in permet je contribuais vous de modifier les paramètres cron de nombreux emplois en même temps. Cela devrait vous permettre de faire les changements en vrac que vous voulez.

L'expansion sur la suggestion de Mikezx6r, je viens avec une méthode rapide pour désactiver toutes les versions correspondant à une certaine chaîne:

[user@server jobs] $ for i in *build_name*; do sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done

Vous pouvez aussi parcourir les noms de construction spécifiques dans la boucle « for »:

[user@server jobs] $ for i in build1 build2 build3; do sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done

Vous pouvez tester d'abord pour voir ce qu'il va faire en mettant un « écho » avant sed:

[user@server jobs] $ for i in build1 build2 build3; do echo sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done

A l'inverse, vous pouvez réactiver en passant autour du script sed tous les emplois correspondant à:

[user@server jobs] $ for i in build1 build2 build3; do sed -i s/"disabled>true"/"disabled>false/" $i/config.xml; done

Je ne vois pas un moyen direct de le faire, mais vous pouvez écrire quelque chose qui met à jour le fichier config.xml pour tous les travaux.

Dans le répertoire de chaque emploi dans hudson, il y a un config.xml. Le a un élément appelé désactivé que vous pouvez mettre à jour true, désactivant ainsi que la construction.

Pas idéal, mais une fois que vous avez le script de marcher un répertoire et changer la valeur des personnes handicapées, vous pouvez toujours l'utiliser.

Une recherche de quelque chose de similaire m'a amené à cette question, et je me suis rendu il y a un autre avantage de la réponse de Michael Donohue (et le plug-in, il a contribué).

« Configuration Slicing, » il est facile de désactiver un sous-ensemble de vos tâches à la fois. C'est exactement ce que je devais désactiver temporairement 7 de 8 emplois liés pour que je puisse travailler le 8. Merci Michael!

Cela peut être fait en utilisant la console jenkins. Il fonctionne de script groovy et presque tout.

Après script parcourt tous les projets. Vérifiez si elle a TimerTrigger. (On peut étendre cette vérification d'autres déclencheurs ainsi)

import hudson.model.Hudson
import hudson.model.Project
import hudson.triggers.TimerTrigger
import hudson.triggers.Trigger
import hudson.triggers.TriggerDescriptor

//All the projects on which we can apply the getBuilders method
def allProjects = Hudson.instance.items.findAll { it instanceof Project }
def projectsToWorkOn = [];
allProjects.each { Project project ->
    Map<TriggerDescriptor, Trigger> triggers =
            project.getTriggers();
    triggers.each { trigger ->

        if (trigger.value instanceof TimerTrigger) {
            projectsToWorkOn.push(project)


        }

    }
}


projectsToWorkOn
        .each { Project project ->

    project.disable();
    project.save()
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top