Comment passer construire artéfact dans un autre emploi à Jenkins

Setup

j'ai deux emplois dans Jenkins:

  • build master - cela génère le code et crée un artefact
  • deploy master - cette déploie l'artefact

Actuellement deploy master A "copier des artefacts d'un autre projet" construire étape en utilisant "Dernière construction réussie".

build-master

Mon But

je veux changer cette étape de "dernière génération réussie" "spécifié par un paramètre de construction" pour que je puisse sélectionner une construction spécifique lors du déploiement sans modifier la configuration de deploy master travail à chaque fois.

Ce que j'ai essayé

tout d'abord, j'ai changé en "spécifié par un paramètre de construction".

build-specific

puis j'ai coché la case à côté de "ce projet est paramétré" et j'ai ajouté un paramètre string pour BUILD_SELECTOR.

parameter

puis j'ai sélectionné build et j'ai entré l'entrée 47 qui est un nombre de build à partir du build master travail.

de plus j'ai essayé l'appel api

$.ajax({
  type: 'POST',
  url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});

Résultat

les Deux fois, il a échoué avec le résultat suivant:

Started by user styfle
[EnvInject] - Loading node environment variables.
Building in workspace C:Jenkinsjobsdeploy masterworkspace
ERROR: Unable to find a build for artifact copy from: build master
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE

Question

Comment puis-je configurer ceci correctement pour pouvoir spécifier un numéro de build (ou un autre identifiant) quand le déploiement?

mise à Jour avec la solution

ma solution grâce à la réponse de Gerold était d'ajouter un paramètre "Build selector for Copy Artifact" et d'utiliser une nouvelle variable d'environnement pour lier à mon paramètre string que j'ai déjà ajouté.

enter image description here

13
demandé sur styfle 2016-05-27 17:38:19

2 réponses

les répertoires racine des deux sont spécifiés dans Gérer JenkinsConfigurer Le SystèmeAvancé....

Pour déployer un artefact d'une version précédente, vous devez le copier à un autre endroit dans build master et l'accès il y deploy master tard.

mise à jour:

Voir l'aide en ligne pour construire Nom Du Paramètre:

un paramètre avec ce nom doit être ajouté dans la section Paramètres de construction ci-dessus. Il y a un type de paramètre spécial pour choisir le sélecteur de construction.

utilisez ceci créer un sélecteur pour Copier Artefact au lieu d'un Chaîne Le paramètre.

4
répondu Gerold Broser 2016-05-27 16:37:12

ajouter ce qui suit dans le projet en aval. "Construire sélecteur pour Copier Artefact" au lieu de "Paramètre de Chaîne"

"Build selector for Copy Artifact" instead of a "String Parameter"!!

copier des artefacts d'un autre projet

enter image description here

c'est tout. Cliquez sur "Construire avec les paramètres" et passez le numéro de construction enter image description here

2
répondu Febin 2018-01-26 15:05:24