«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как встроить информацию о версии Git в двоичные файлы Go для устранения неполадок?

Как встроить информацию о версии Git в двоичные файлы Go для устранения неполадок?

Опубликовано 5 ноября 2024 г.
Просматривать:605

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

Определение версии Git в двоичных файлах Go

При развертывании кода может быть полезно связать двоичные файлы с версией git, из которой они были созданы целях устранения неполадок. Однако прямое обновление исходного кода с указанием номера версии невозможно, поскольку оно изменяет исходный код.

Решение: использовать флаги сборки

Решение этой проблемы включает в себя использование флагов сборки. Установив переменную версии в основном пакете с текущей версией git с помощью флагов сборки, вы можете поддерживать связь между двоичными файлами и их исходными версиями. Этого можно достичь, выполнив следующие шаги:

  1. Получите версию git в переменную среды $VERSION с помощью команды git rev-parse --short HEAD.
  2. Установите переменную версии. в основном пакете с флагом сборки -ldflags "-X main.version=$VERSION" во время процесса сборки go.

Вот пример скрипта, демонстрирующий этот подход:

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

Выполняя этот скрипт, вы можете создавать двоичные файлы с текущей версией git, встроенной в переменную версии, что позволит вам получить ее позже, используя ./mybinary --revision.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3