Cómo asignar el hash de confirmación de git a una variable en el archivo Jenkins

2 minutos de lectura

Estoy tratando de asignar el hash de confirmación de git a una variable definida en la canalización de Jenkins de la siguiente manera

GIT_COMMIT_HASH = sh "(git log -n 1 --pretty=format:'%H')"

Esto imprimirá el hash de confirmación en el registro de compilación de Jenkins, pero no puede asignar el valor.

Cuando trato de imprimir el valor usando

steps{
    script {
                GIT_COMMIT_HASH = sh "(git log -n 1 --pretty=format:'%H')"

                echo "**************************************************"
                echo "${GIT_COMMIT_HASH}"
                echo "**************************************************"
    }
}

Esto resultará nulo

¿Cómo puedo asignar el valor?

  • No va a funcionar Recibo un error sh: Error de sintaxis: palabra inesperada (esperando “)”)

    – 0x12

    21 de septiembre de 2017 a las 0:43


  • Debes tener algo escrito incorrectamente. Supongo que te saltaste una coma.

    – Rob Hales

    21 de septiembre de 2017 a las 1:19

  • Ups. Olvidé la etiqueta de la primera variable. Creo que es “guión”. Arreglado arriba.

    – Rob Hales

    21 de septiembre de 2017 a las 2:02

  • Acabo de validar esto con algunos de mis scripts. Esta es la sintaxis correcta ahora. Lo siento, debería ser más cuidadoso con mi edición de copiar y pegar.

    – Rob Hales

    21 de septiembre de 2017 a las 4:40

  • git rev-parse HEAD es una forma más rápida de hacer esto

    – Rossiar

    10 de diciembre de 2019 a las 12:55

  • Para el votante negativo: lo siento, tal vez no proporcioné suficientes antecedentes antes. Editado. ¿Puedes volver a revisar por favor?

    – Greg Dubicki

    2 de febrero de 2022 a las 21:54

  • siempre es mejor comparar la fecha solicitada

    – 0x12

    4 de febrero de 2022 a las 1:07

  • ¿Compararlo con qué, @co2f2e? No entiendo tu punto. De todos modos, ¿me estoy perdiendo alguna razón por la que nadie sugiere una variable integrada?

    – Greg Dubicki

    6 de febrero de 2022 a las 7:51


  • ¡impresionante! Estúpido Jenkins ocultando esta información en stack-overflow. TeamCity convierte esta información en un resultado de primera clase de la compilación.

    – CJ

    26 mayo 2022 a las 19:02

¿Ha sido útil esta solución?