J'ai deux emplois à Jenkins:
build master
- cela construit le code et crée un artefactdeploy master
- cela déploie l'artefactActuellement, deploy master
comporte l'étape de génération "Copier les artefacts d'un autre projet" en utilisant la "dernière génération réussie".
Je souhaite faire passer cette étape de la "dernière version réussie" à "spécifiée par un paramètre de génération" afin de pouvoir sélectionner une génération spécifique lors du déploiement sans modifier la configuration de deploy master
travail à chaque fois.
Tout d'abord, je suis passé à "spécifié par un paramètre de construction".
J'ai ensuite coché la case "Ce projet est paramétré" et j'ai ajouté un paramètre de chaîne pour BUILD_SELECTOR
.
Ensuite, j'ai sélectionné la construction et entrez l'entrée 47
qui est un numéro de build du build master
emploi.
De plus, j'ai essayé l'appel api
$.ajax({
type: 'POST',
url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});
Les deux fois, il a échoué avec la sortie suivante:
Started by user styfle
[EnvInject] - Loading node environment variables.
Building in workspace C:\Jenkins\jobs\deploy master\workspace
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
Comment configurer cela correctement pour pouvoir spécifier un numéro de build (ou un autre identifiant) lors du déploiement?
Ma solution grâce à la réponse de Gerold a été d'ajouter un paramètre "Sélecteur de build pour copier un artefact" et d'utiliser une nouvelle variable d'environnement pour créer un lien vers mon paramètre de chaîne que j'ai déjà ajouté.
Il n'y a qu'un seul espace de travail par projet/travail dans Jenkins. Les répertoires des builds contiennent uniquement des informations sur les builds et leurs résultats.
Les répertoires racine des deux sont spécifiés dans Gérer Jenkins → Configurer le système → Advanced....
Pour déployer un artefact d'une version précédente, vous devez le copier ailleurs dans build master
et y accéder depuis deploy master
plus tard.
MISE À JOUR:
Voir l'aide en ligne pour Quelle version → Nom du paramètre :
Un paramètre portant ce nom doit être ajouté dans la section des paramètres de construction ci-dessus. Il existe un type de paramètre spécial pour choisir le sélecteur de construction.
Utilisez ce Sélecteur de construction pour copier l'artefact au lieu d'un paramètre de chaîne .