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.

Cómo utilizar una variable de entorno en una declaración de script con una cadena de texto en tres comillas en Jenkins?

Estoy tratando de llamar a una variable en mi Jenkinsfile desde una declaración de script con una cadena de triple comilla doble como se muestra a continuación:

sh(script: """
python -m flake8 ${APP}
""")

Esto no parece estar funcionando ya que obtengo un error como:

No such property: imageNameParameter for class: genericJenkinsfile

La variable se declara de la siguiente manera al comienzo del archivo:

def APP = body.appName

También intenté varios cambios como usar env.APP o usar comillas simples alrededor de ${APP}, pero tampoco funcionó.
¿Alguna idea?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que la variable APP no es accesible dentro de la declaración de script. Una solución a esto es pasar la variable como una variable de entorno usando la directiva environment. Aquí tienes un ejemplo de cómo puedes modificar tu código para que funcione:

    pipeline {
        agent any
    
        environment {
            APP = "${body.appName}"
        }
    
        stages {
            stage('Linting') {
                steps {
                    sh(script: """
                        python -m flake8 ${env.APP}
                    """)
                }
            }
        }
    }
    

    En este código, definimos una variable de entorno APP utilizando el valor ${body.appName} pasado como parámetro. Luego, dentro del bloque steps, podemos acceder a esta variable utilizando env.APP. Ten en cuenta que utilizamos comillas dobles alrededor de la declaración del script para poder interpolar la variable.

    ¡Espero que esto te ayude!

Comments are closed.