Avatar ·

Comment ajouter un numéro de version et un hash de commit dans une application Go lors de la compilation ?

Bonjour à tous ! J'écris une petite application web en Go et je souhaite qu'elle affiche sa version au démarrage. Actuellement, je modifie manuellement une constante dans le code : ```go const Version = "1.0.3" ``` Mais c'est terriblement peu pratique. À chaque commit, je dois aller dans le code, modifier la chaîne, faire un commit séparé. Et j'aimerais aussi voir non seulement le numéro de version, mais aussi le hash du commit et la date de compilation — pour savoir exactement quelle version est exécutée sur le serveur. J'ai essayé de lire des fichiers, mais cela ne fonctionne pas si le binaire est déplacé sur une autre machine. J'ai entendu parler de ldflags, mais je n'arrive pas à comprendre comment les utiliser correctement. Expliquez-moi comment on fait habituellement le versioning dans les projets Go ? Comment passer la version, le hash du commit et la date de compilation dans le binaire lors de la compilation, pour que cela fonctionne sans bricolage ? Et pour que lors de l'exécution de `./myapp version` ou `./myapp --version`, toutes les informations soient affichées. Je serais reconnaissant pour un exemple de Makefile ou de script de compilation qui fait cela automatiquement lors du CI/CD. <<>>

Utilisation de l