"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como incorporar informações de revisão do Git em binários Go para solução de problemas?

Como incorporar informações de revisão do Git em binários Go para solução de problemas?

Publicado em 2024-11-05
Navegar:619

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

Determinando a revisão do Git em binários Go

Ao implantar o código, pode ser útil associar os binários à revisão do git a partir da qual foram criados propósitos de solução de problemas. No entanto, atualizar diretamente o código-fonte com o número de revisão não é viável, pois altera a fonte.

Solução: Utilize Build Flags

Uma solução para este desafio envolve aproveitando sinalizadores de construção. Ao definir a variável de versão no pacote principal com a revisão git atual usando sinalizadores de construção, você pode manter um link entre os binários e suas versões de origem. Isso pode ser conseguido através das seguintes etapas:

  1. Obtenha a revisão git em uma variável de ambiente $VERSION usando o comando git rev-parse --short HEAD.
  2. Defina a variável de versão no pacote principal com o sinalizador de compilação -ldflags "-X main.version=$VERSION" durante o processo de compilação go.

Aqui está um exemplo de script que demonstra essa abordagem:

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

Ao executar este script, você pode construir binários com a revisão git atual incorporada na variável de versão, permitindo recuperá-la posteriormente usando ./mybinary --revisão.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3