"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo incrustar información de revisión de Git en Go Binaries para solucionar problemas?

¿Cómo incrustar información de revisión de Git en Go Binaries para solucionar problemas?

Publicado el 2024-11-05
Navegar:555

How to Embed Git Revision Information in Go Binaries for Troubleshooting?

Determinación de la revisión de Git en binarios de Go

Al implementar el código, puede resultar útil asociar los binarios con la revisión de git para la que se crearon. propósitos de solución de problemas. Sin embargo, no es factible actualizar directamente el código fuente con el número de revisión, ya que altera la fuente.

Solución: utilizar indicadores de compilación

Una solución a este desafío implica aprovechando las banderas de construcción. Al configurar la variable de versión en el paquete principal con la revisión actual de git usando indicadores de compilación, puede mantener un vínculo entre los archivos binarios y sus versiones fuente. Esto se puede lograr mediante los siguientes pasos:

  1. Obtenga la revisión de git en una variable de entorno $VERSION usando el comando git rev-parse --short HEAD.
  2. Establezca la variable de versión en el paquete principal con el indicador de compilación -ldflags "-X main.version=$VERSION" durante el proceso de compilación.

Aquí hay un script de ejemplo que demuestra este enfoque:

#!/bin/sh
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION"  myfile.go

Al ejecutar este script, puede crear archivos binarios con la revisión actual de git incrustada en la variable de versión, lo que le permitirá recuperarlos más tarde usando ./mybinary --revision.

Último tutorial Más>

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