web-dev-qa-db-fra.com

Jenkins: Définir un paramètre DefaultValue de manière dynamique

J'essaie de configurer une configuration de pipeline multibranchhe où la case à cocher "Déployer" Boolean est en panne sur true sur des branches de non-production et false sur la construction de la production.

pipeline {
  parameters{
    booleanParam(defaultValue: true, description: 'Do deploy after build', name: 'DEPLOY')

Y a-t-il une méthode de réglage conditionnellement defaultValue=false lorsque $BRANCH_NAME == "production"?

6
Cal

Dans votre question, c'est un peu flou si BRANCH_NAME fait référence à une variable d'environnement (comme dans env.BRANCH_NAME) ou à un autre paramètre (comme dans params.BRANCH_NAME).

Si d'abord, il y a des variables d'environnement, ce qui signifie qu'il y a un environnement, un nœud doit donc avoir été attribué à son environnement. Pour allouer un nœud, le pipeline doit commencer à courir. Pour commencer à exécuter, l'utilisateur doit sélectionner les paramètres pour exécuter le pipeline. C'est donc un problème de poulet et d'œufs: vous ne pouvez pas avoir une variable d'environnement avant de lancer des pipelines et vous devez déterminer les paramètres avant d'exécuter le pipeline.

Si ce dernier, et vous pensez à un cas où, peut-être, il y a un paramètre de chaîne qui passe au nom de BRANCH_NAME et un paramètre booléen qui passe au nom de DEPLOY, et sur la page Paramètres de la case DEPLOY est décochée lorsque vous tapez maste dans BRANCH_NAME, mais une fois que vous appuyez sur le r, cela devient magiquement vérifié ... alors cela pourrait être fait - avec beaucoup de douleur - en utilisant le plugin de choix actif.

Enfin, si ce que vous voulez, c'est empêcher tout déploiement de la succursale master, vous pouvez vérifier à la fois le paramètre et le nom de la succursale avant de le déployer et de refuser de déployer si le paramètre est faux ou si la succursale est master.

0
MaratC