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.

Jenkinsfile: Establecer variable de entorno basada en otra variable de entorno (Windows)

Estoy tratando de crear un Jenkinsfile con variables de entorno que se basan en otras variables de entorno. Esto no funciona ya que el %PATH% en el ejemplo a continuación no se traduce correctamente.

¿Cuál es la syntax adecuada para hacer que esto funcione?

pipeline {
environment {
ENVTEST1 = ‘$PATH;c:\additional\path’
ENVTEST2 = ‘${PATH};c:\additional\path’
ENVTEST3 = ‘$env.PATH;c:\additional\path’
ENVTEST4 = ‘${env.PATH};c:\additional\path’
ENVTEST5 = ‘%PATH%;c:\additional\path’
}
agent any
stages {
stage (‘Build’){
steps {
bat ‘SET’ // imprime todas las variables de entorno
}
}
}
}

El resultado en el registro de construcción es el siguiente:

ENVTEST1=$PATH;c:\additional\path
ENVTEST2=${PATH};c:\additional\path
ENVTEST3=$env.PATH;c:\additional\path
ENVTEST4=${env.PATH};c:\additional\path
ENVTEST5=%PATH%;c:\additional\path

Ninguna de las opciones anteriores parece funcionar.

¿Alguien puede decirme cómo definir una variable de entorno basada en otra variable de entorno, por favor?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para definir una variable de entorno basada en otra variable de entorno en Jenkinsfile, puedes utilizar la sintaxis ${NOMBRE_VARIABLE_ENTORNO}. En tu caso, puedes reemplazar %PATH% por ${PATH} para que funcione.

    Aquí está el código actualizado:

    pipeline {
        environment {
            ENVTEST1 = '${PATH};c:\\additional\\path'
            ENVTEST2 = "${PATH};c:\\additional\\path"
            ENVTEST3 = "\$env.PATH;c:\\additional\\path"
        }
        agent any
        stages {
            stage('Build') {
                steps {
                    bat 'SET'
                }
            }
        }
    }
    

    Ten en cuenta que en el primer ejemplo, debes usar comillas simples para evitar que la variable sea interpretada por Groovy. En el segundo ejemplo, puedes usar comillas dobles para permitir que la variable sea interpolada. Y en el tercer ejemplo, necesitas escapar el signo $.

    ¡Espero que esto sea de ayuda!

Comments are closed.