IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intégration Continue Discussion :

File d'attente


Sujet :

Intégration Continue

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut File d'attente
    Bonjour à tous !!

    J'ai découvert récemment Jenkins lors de mon stage en entreprise et j'aurais besoin de votre aide.

    Je cherche un plugin (ou tout autre méthode) qui me permet de définir un projet général qui va se charger de lancer les autres projets à des heures prédéfinies.

    Un exemple :
    1h00 - lancer le projet A
    une fois A fini lancer B
    une fois B fini et 3h00, lancer C
    ... etc

    Je connais l'option "Création en aval" mais cela implique que si je build un projet dans la journée, les suivant suivent (ou alors je doit penser à désactivé/réactivé cette option à chaque fois)

    J'espère avoir été assez clair

    Bonne journée !

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Effectivement, si tu configures A pour lancer B dans la foulée, ce sera toujours actif.
    Une idée serait de créer un job spécifique pour le lancement à 1h du matin, qui lancerait A et B. Ainsi, tu ne toucheras pas à la configuration de ces 2 jobs.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Tout d’abord merci de s'intéresser à mon cas

    Ensuite, oui j'ai déjà essayé de créer un projet comme celui-ci mais sans succès. Le problème se pose sur le fait d'enchainé les projets. L'option "Construire d'autres projets (projets en aval)" exécute TOUS les projets mis dans l'option en même temps, ce que je ne veux absolument pas car j'ai besoin d’utiliser des BD différentes (donc chargement de BD avant chaque début de projet)

    A moins qu'il existe une option pour spécifier que l'on veux les construire l'un après l'autre ???

    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut
    Bonjour,

    Oui effectivement tu peux utiliser la partie post built task. Sous condition, le lancement d'une tache post build est possible. A voir si ça correspond à ton besoin.

    Laurent.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Bonjour,

    Oui je pense que cette option peut résoudre mon problème mais je ne sais pas comment l'utiliser car si je met projetA, projetB, projetC
    le build lance ces 3 projet en même temps en non pas un par un !

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Le plugin BuildResultTrigger (https://wiki.jenkins-ci.org/display/...Trigger+Plugin), aka JobTrigger, devrait solutionner votre problématique.
    Ce plugin permet de surveiller les nouveaux builds de plusieurs jobs et de déclencher le job courant configuré s'il y a un changement entre deux vérifications.

    Dans votre situation:
    - vous configurer le projet B
    - vous configurer le projet C
    Ces deux projets surveille s'il y a un nouveau build du projet A (on peut personnaliser le status, en succès, en instable, ...).
    Le délai de surveillance est configurable à travers un cron Unix.
    Par exemple le projet C sera regler pour ce déclencher toutes les 3h.
    B et C seront lancés si il y a un nouveau build A en succès.

    BuilResultTrigger plugin fait partie du plugin XTrigger (https://wiki.jenkins-ci.org/display/...Trigger+Plugin).

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Bonjour,

    merci pour ce plugin, il semble très intéressant, mais il reste un petit problème, c'est qu'il faut configurer un à un les projet.

    L'idéal serait d'avoir un plugin qui "ordonnance" l’exécution avec simplement les nom des projets placé en paramètre

  8. #8
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Jette un oeil sur le plugin Build Flow :

    https://wiki.jenkins-ci.org/display/...ld+Flow+Plugin
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Merci, ce plugin me semble plus approprié à mon problème

    je vais essayer de le comprendre ...

    Encore merci !!!

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Pour éviter de configurer les jobs manuellement, on peut tout simplement le scripter.
    Jenkins propose une API Http et un CLI pour faciliter la création de jobs.

    Pour le buildFlow plugin, celui-ci propose uniquement une DSL au dessus de jobs et ne fournit pas de mécanisme d'ordonnacement temporisé.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    hummm, pourtant si on regarde le descriptif du plugin :
    The DSL defines the sequence of jobs to be built :

    build( "job1" )
    build( "job2" )
    build( "job3" )
    cela permet bien de lancer un build, puis un autre, puis un autre ? C'est donc ce que je recherche ? non ?

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Dans le premier post, il semble être suggéré que le jobC n'est lancé que 3H après le jobB et ceci n'est pas possible avec le build-flow (c'est ce que j'appelle un ordonnancement temporisé).

    De plus, je me permet de mettre en évidence que cela semble mettre en évidence un problème de design dans ton découpage de tes jobs Jenkins.

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    non je pensais dès qu'il est 3h00

    mais finalement, il me faudrais juste un job qui se lance à XXhXX et qui lancer le job1, puis je job2, puis le job3 (peu importe le résultat des job précédents)

    Quel est donc le plugin le plus adapté ?

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Pour répondre à ce que tu veux faire, tu peux le faire manuellement en configurant chaque job. Et effectivement, tu peux utiliser le buildflow plugin pour faire la même chose via une DSL.

    Cepandant, je me permet du coup de te poser la question, mais pourquoi ne fait-tu l'ensemble de tes étapes en un seul job?

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Bonjour,

    Je ne fais pas un seul job car les job à lancer sont totalement indépendant ^^

    Et non je ne veux pas les configurer "à la main" car comme je l'ai dit, il m'arrive parfois de lancer certain job et je ne veux pas que les suivants s’exécutent.
    Je cherche à faire une sorte de "Campagne de la Nuit" (non non c'est pas du RPG :p) c'est-à-dire, un projet qui se déroule la nuit et qui effectue le lancement des job les uns après les autres (tous étant indépendant et sans rapport).
    je pourrais calculer pour synchroniser les départ des jobs périodiquement, mais certains prennent plus de temps que prévu parfois (ajout de tests par exemple)
    Il faudrait donc tout reconfigurer les suivants à chaque fois.

    Pour infos, j'ai opter pour le plugin BuildFlow :
    en utilisant son bloc "guard - rescue" cela me permet d’enchainer mes projets un à un, peu importe le résultat du précédent.
    Car le bloc "build" permet d'enchainer des projet mais les suivant dépendent du bon l’exécution des précédents.

    Merci à vous tous pour m'avoir aidé !

Discussions similaires

  1. Gestion de files d'attente
    Par bounnitcharaf dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 20/09/2006, 18h34
  2. [Tableaux] créer une file d'attente en php
    Par gaetan.tranvouez dans le forum Langage
    Réponses: 12
    Dernier message: 01/06/2006, 18h49
  3. Mes emails restent en file d'attente sur mon serveur
    Par FredericB dans le forum Réseau
    Réponses: 3
    Dernier message: 26/10/2005, 10h04
  4. Gestion d'une file d'attente
    Par jesus144 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 22/09/2005, 19h58
  5. recupèrer file d'attente d'impression
    Par magic corp. dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2002, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo