63 votes

Comment promouvoir un numéro de build spécifique provenant d'un autre emploi à Jenkins?

J'ai installé l' Promoted Build Plugin de Jenkins et maintenant, je suis confronté à quelques problèmes de promouvoir un modèle à partir d'un travail existant. Voici le scénario:

  1. Il existe une Nightly Build travail qui fonctionne tous les soirs l'exécution de tous les tests et les mesures nécessaires;

  2. Il existe une Deploy Build qui accepte un paramètre ${BUILD_NUMBER} et déploie la version qui a le même ${BUILD_NUMBER} à partir de l' Nightly Build

    • Dire [Nightly Build] a couru et construit avec succès l'artefact #39
    • Maintenant, je peux juste lancer le [Déployer Construire] de passage dans #39 comme paramètre
      • Les artefacts de [Nightly Build] #39 vont être déployés

So far So good. Maintenant est la partie où je veux ajouter l' Build Promotions...

This is exactly what I need to achieve

Est-il un moyen de promouvoir l' Nightly Build #39 (avis qu'il a déjà été construit avant) de l' Deploy Build? Ou peut-être même d'ailleurs, très franchement, je suis un peu perdu là :(

Je ne les vois pas clairement, en Amont et en Aval de la relation, parce qu'ils n'ont pas d': fonctionne toujours de cette construction, puis de l'autre pendant l'exécution - l' [Déployer Construire] est exécuté parfois seulement et pas toujours après l' [Nightly Build].

122voto

Slav Points 6322

Oui, j'ai exactement la même configuration: un à construire de travail (basé sur les commits SVN) et signée à la main déployer travail. Lorsque l'utilisateur sélectionne tout construire à partir de la construire de travail (y compris les versions plus anciennes), ils peuvent aller à la Promotion de l'État de lien et d'exécuter diverses déployer des promotions, par exemple de Déployer de DEV, de Déployer d'assurance de la qualité, etc

Voici comment le programme d'installation de la promotion de construire d'emploi:

  • Vous aurez besoin de ces plugins: Paramétrée Déclencher Plugin, Promu Construit Plugin
  • Coche Promouvoir les versions lors de l'
  • Définir le Nom de "Déployer pour DEV"
  • En vertu de Critères coche Uniquement lorsque approuvés manuellement
  • Sous les Actions de l'utilisation de Déclenchement/d'appel s'appuie sur d'autres projets
  • Dans les Projets de construction d' entrer le nom de votre déployer travail ici
  • Coche Bloc jusqu'à ce que le déclenchée projets de terminer leurs constructions
  • Marque de cette construction comme un échec si la version déclenchée est pire ou égale à: ÉCHEC (à adapter selon les statuts de votre travail de déploiement)
  • Des paramètres prédéfinis (Code)

Code:

Server=IP_of_my_dev_server`  
Job=$PROMOTED_JOB_NAME`  
BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>

Ci-dessus, dans les paramètres Prédéfinis de la section, le nom de la gauche de = sont les paramètres qui sont définis dans votre déployer travail. Et à droite de = sont les valeurs qui seront affectées à ces paramètres lors de cette promotion s'exécute. Définit trois paramètres Server, Job et BuildSelection.

Le paramètre Server= de moi, que mon travail de déploiement peut déployer sur plusieurs serveurs. Toutefois, si votre déployer travail est fixée à déployer systématiquement à un emplacement spécifique, vous n'aurez pas besoin de cela.

L' Job= paramètre est obligatoire, mais le nom du param dépend de ce que vous avez dans votre travail de déploiement (je vais expliquer la configuration). La valeur $PROMOTED_JOB_NAME doit rester comme il est. C'est une variable d'environnement qui les processus de promotion est au courant et désigne le nom de votre construire de travail (celui où le processus de promotion est configuré)

L' BuildSelection= paramètre est requis. Toute cette ligne doit rester comme il est. La valeur transmise est - $PROMOTED_NUMBER, ce qui une fois de plus la promotion est conscient. Dans votre exemple, il serait #39.

Le Bloc jusqu'à ce que le déclenchée projets de terminer leurs constructions coche pour faire la promotion de processus attendre jusqu'à ce que le déployer travail terminé. Si pas, le processus de promotion de déclencher le travail de déploiement et cesser de fumer avec succès. En attente pour le déployer emploi à la fin, qui a l'avantage que si le déployer travail échoue, la promotion de la star sera marquée par l'échec de trop.

(Une petite note ici: la promotion de la star apparaît succès alors que le déployer travail est en cours d'exécution. Si il est de déployer l'échec, il ne changera à l'échec après la déployer travail terminé. Logique... mais peut être un peu déroutant si vous regardez à la promotion de la star avant le déploiement terminé)

Voici comment le programme d'installation de déployer travail

  • Vous aurez besoin de ce plugin (mais je pense qu'il est pré-installé avec Jenkins)
    https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artefact+Plugin
  • En vertu de Ce build est paramétrable
  • Configurer un Choix (ou le Texte) paramètre avec le nom Job (ce nom doit correspondre à la configuration dans la promotion des Paramètres Prédéfinis dans la section précédente)
  • Choix: Entrer le nom de votre build emploi en tant que par défaut. Ceci n'est nécessaire que si vous déclenchez le déployer manuellement. Lorsque le déployer travail est déclenchée à partir de la promotion, la promotion d'approvisionnement de la valeur ( Job= à partir de paramètres Prédéfinis que nous avons configuré). Aussi, si aucune valeur n'est transmise à partir de la promotion des paramètres Prédéfinis, le premier choix de la valeur sera utilisée. Si vous avez un 1-de-1 relation entre le construire et de déployer des emplois, vous pouvez omettre l' Job= paramètre dans la promotion de la configuration.
  • Configurer un sélecteur de Construire pour Copier Artefact avec nom: BuildSelection
  • Sélecteur par défaut: Dernière génération réussie
  • En vertu de Construire les étapes
  • Configurer Copier des objets d'un autre projet
  • Dans le Projet nom de l' entrée ${Job}
  • À renforcer, choisissez Specified by a build parameter
  • Dans le Nom de Paramètre d' entrée BuildSelection (sans ${...}!)
  • Configurez le reste en fonction de vos artefacts qui seront copiés à partir de construire des emplois à déployer d'emploi de l'espace de travail
  • Utilisation de la copie d'artefacts à l'intérieur de la déployer travail que vous avez besoin pour déployer

Maintenant, avec le dessus de déployer d'emploi, vous pouvez l'exécuter manuellement et de sélectionner le numéro de build de construire de travail que vous souhaitez déployer (dernière génération, le dernier ayant réussi, par le numéro de build, etc). Vous avez probablement déjà configuré de façon très similaire. La promotion sur le construire de travail sera essentiellement exécuter la même chose, et de fournir le numéro de build, basé sur ce que la promotion a été exécuté.

Laissez-moi savoir si vous avez des problèmes avec les instructions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X