Avatar ·

Cómo agregar número de versión y hash de commit en una aplicación Go al compilar

¡Hola a todos! Estoy escribiendo una pequeña aplicación web en Go y quiero que al iniciar muestre su versión. Actualmente cambio manualmente una constante en el código: ```go const Version = "1.0.3" ``` Pero esto es terriblemente incómodo. Con cada commit tengo que meterme en el código, cambiar la cadena, hacer un commit aparte. Y además quiero ver no solo el número de versión, sino también el hash del commit y la fecha de compilación — para saber exactamente qué build está ejecutándose en el servidor. Intenté leer archivos, pero eso no funciona si el binario se traslada a otra máquina. He oído sobre ldflags, pero no logro entender cómo usarlos correctamente. Cuéntenme, ¿cómo se acostumbra hacer el versionado en proyectos Go? ¿Cómo pasar la versión, el hash del commit y la fecha de compilación al binario en la etapa de compilación, para que funcione sin trucos? Y que al ejecutar `./myapp version` o `./myapp --version` se muestre la información completa. Agradecería un ejemplo de Makefile o script de compilación que haga esto automáticamente en CI/CD. <<>>

Uso de l