Agregar información de revisión de Git a los binarios de Go
La capacidad de determinar la revisión de Git a partir de la cual se creó un binario de Go es un activo valioso para depuración y seguimiento de versiones. Al incorporar esta información en el propio binario, los ingenieros pueden identificar fácilmente el código fuente utilizado para crear una versión particular.
Por qué establecer números de versión en el código fuente es insuficiente
Si bien Puede parecer intuitivo incluir el número de revisión bezpośrednio, pero la naturaleza variable de las revisiones de Git hace que este enfoque no sea práctico. Cada cambio en el código base alteraría el código fuente, creando esencialmente un objetivo en movimiento.
Construyendo con Git Revision Embedded
Una solución más efectiva implica utilizar el comando go build Opción -ldflags en combinación con un script de shell especialmente diseñado. El siguiente fragmento de código demuestra cómo lograr esto:
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION" myfile.go
Este script recupera la revisión de Git usando git rev-parse --short HEAD y la asigna a la variable VERSIÓN. Posteriormente, se invoca el comando go build con la opción -ldflags para incrustar la variable main.version dentro del binario. La inclusión de principal. es crucial ya que indica que la variable está definida dentro del paquete principal de su programa Go.
Acceso a la información de revisión
Una vez creado el binario, puede acceder la información de revisión de Git usando el siguiente comando:
fmt.Println(version)
Al ejecutar este código, la revisión de Git que se incrustó durante el proceso de compilación se imprimirá en el consola. Esto le permite rastrear fácilmente la versión del código que generó el binario, lo que ayuda en la depuración y el control de versiones.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3