es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando Funciones en la Descripción de Parámetros del Archivo JenkinsFile

Estoy intentando agregar una función en JenkinsFile Declarative pipelines en la descripción de los parámetros, pero tengo dificultades para hacerlo funcionar.

La idea es tener un trabajo de Jenkins específico para el entorno, y me gustaría ver que el parámetro de opción muestre el nombre del entorno en la descripción de la variable.

Mi pipeline se ve así:

def check_env = appenv(ENVS, env.JOB_NAME)

pipeline {
    agent { label 'master' }
    options {
        disableConcurrentBuilds()
        buildDiscarder(logRotator(numToKeepStr: '20'))
        timestamps()
    }
    parameters{
string(name: 'myVariable', defaultValue: "/", description: 'Ingrese la ruta a la aplicación, por ejemplo, / o /dummy ruta para {check_env}')
}
    stages{
        stage('Running App') {
            agent {
                docker {
                    image 'myApp:latest'
                }
            }
            steps{
                script{
                      sh label: 'App', script: "echo 'La aplicación se está ejecutando en ${check_env}'"
                        }
                    }
                }
            }
        }
    }

He intentado múltiples combinaciones para check_env, por ejemplo, check_env, check_env(), ${check_env} función, pero ninguna de ellas funcionó.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para establecer dinámicamente la descripción de un parámetro en un Pipeline Declarativo de Jenkins, se puede utilizar la interpolación de cadenas. Aquí hay una modificación de ejemplo al código original:

    def check_env = app_env(ENVS, env.JOB_NAME)
    
    pipeline {
        agent { label 'master' }
        options {
            disableConcurrentBuilds()
            buildDiscarder(logRotator(numToKeepStr: '20'))
            timestamps()
        }
        parameters {
            string(
                name: 'myVariable',
                defaultValue: '/',
                description: "Ingrese la ruta a la aplicación, por ejemplo / O /dummy_path para ${check_env}"
            )
        }
        stages {
            stage('Ejecutando App') {
                agent {
                    docker {
                        image 'myApp:latest'                
                    }
                }
                steps {
                    script {
                        sh label: 'App', script: "echo 'La aplicación se está ejecutando en ${check_env}'"
                    }
                }
            }
        }
    }
    

    En esta modificación, usamos comillas dobles alrededor de la cadena description para habilitar la interpolación de cadenas. Luego, usamos ${check_env} en lugar de {check_env} para hacer referencia a la variable check_env dentro de la cadena.

Comments are closed.