Adicionando informações de revisão do Git aos binários Go
A capacidade de determinar a revisão do Git a partir da qual um binário Go foi construído é um recurso valioso para depuração e rastreamento de versão. Ao incorporar essas informações no próprio binário, os engenheiros podem identificar facilmente o código-fonte usado para criar uma versão específica.
Por que definir números de versão na fonte é insuficiente
Enquanto pode parecer intuitivo incluir o número de revisão bezpośrednio em, a natureza variada das revisões do Git torna esta abordagem impraticável. Cada mudança na base de código alteraria o código-fonte, essencialmente criando um alvo móvel.
Construindo com Git Revision Embedded
Uma solução mais eficaz envolve a utilização do comando go build Opção -ldflags em combinação com um script de shell especialmente criado. O trecho de código a seguir demonstra como fazer isso:
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION" myfile.go
Este script busca a revisão do Git usando git rev-parse --short HEAD e a atribui à variável VERSION. Posteriormente, o comando go build é invocado com a opção -ldflags para incorporar a variável main.version no binário. A inclusão do principal. é crucial, pois indica que a variável está definida no pacote principal do seu programa Go.
Acessando as informações de revisão
Depois que o binário for construído, você poderá acessar as informações de revisão do Git usando o seguinte comando:
fmt.Println(version)
Ao executar este código, a revisão do Git que foi incorporada durante o processo de construção será impressa no console. Isso permite rastrear facilmente a versão do código que gerou o binário, auxiliando na depuração e no controle de versão.
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