Puis-je définir plusieurs agent des étiquettes dans un déclarative Jenkins Pipeline?
Je suis en utilisant déclarative Jenkins pipelines pour exécuter certains de mes construire des pipelines et je me demandais si il est possible de définir plusieurs agent étiquettes.
J'ai un certain nombre d'agents de build accroché à mon Jenkins et aimerait que ce pipeline pour pouvoir être construit par divers agents qui ont des étiquettes différentes (mais pas par TOUS les agents).
Être plus concret, disons que j'ai 2 agents avec une étiquette "petits", 4 avec le label 'medium' et 6 avec l'étiquette de "grand". Maintenant, j'ai un pipeline qui est des ressources très faibles et je veux qu'il soit exécuté sur seulement une "petite" ou "moyenne" de la taille de l'agent, mais pas sur un grand car il peut causer de grandes construit à attendre dans la file d'attente pour beaucoup trop longtemps.
Tous les exemples que j'ai vu jusqu'à présent que l'utilisation d'une seule étiquette.
J'ai essayé quelque chose comme ceci:
agent { label 'small, medium' }
Mais il a échoué.
J'utilise la version 2.5 de l'Jenkins Pipeline Plugin.
OriginalL'auteur FrontSide | 2017-04-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez voir le "Pipeline de la syntaxe' aider dans votre installation de Jenkins et de voir l'exemple de l'étape "nœud" de référence.
Vous pouvez utiliser
exprA||exprB
:Pas ce que l'OP a demandé, mais vaut la peine de mentionner que l'opérateur ET (&&) fonctionne aussi bien si vous avez besoin d'étiquettes:
node('small && medium')
et vous pouvez avoir d'espace entre l'opérateur et les étiquettes (plus lisible).OriginalL'auteur Arcin B
Cette syntaxe semble fonctionner pour moi:
J'ai raté la partie ou... mon mauvais. Je vais quitter ce ici, mais au cas où quelqu'un est à la recherche pour les étiquettes.
Cela n'a pas fonctionné pour moi. Pour une raison quelconque, il attend qu'un seul label nommé "linux&&java".
OriginalL'auteur gone.skiing
Si vous avez besoin de plusieurs agents, vous pouvez déclarer
agent none
et de déclarer ensuite l'agent à chaque étape.https://jenkins.io/doc/book/pipeline/jenkinsfile/#using-multiple-agents
De la documentation:
Ok, je ne vous méprenez. De ce que j'ai lu, je ne vois pas une façon de déclarer un sous-ensemble d'agents pour la jenkinsfile. Bonne Chance
Ok, pas la peine. Il a bien fonctionné avant le déclaratif des pipelines. Tirez-le temps de la demande, je suppose.
OriginalL'auteur mcalcote
Créer un autre label appeler "petite ou moyenne" qui a 6 tous les agents. Puis dans Jenkinsfile:
OriginalL'auteur Bing Shiao