Добавление информации о версии Git в двоичные файлы Go
Возможность определить версию Git, на основе которой был создан двоичный файл Go, является ценным активом для отладка и отслеживание версий. Включив эту информацию в сам двоичный файл, инженеры могут легко идентифицировать исходный код, использованный для создания конкретного выпуска.
Почему установка номеров версий в исходном коде недостаточна
Пока Включение номера версии bezpośrednio может показаться интуитивно понятным, но различная природа версий Git делает этот подход непрактичным. Каждое изменение в кодовой базе приводит к изменению исходного кода, по сути создавая движущуюся цель.
Сборка с помощью Git Revision Embedded
Более эффективное решение включает использование команды go build -ldflags в сочетании со специально созданным скриптом оболочки. Следующий фрагмент кода демонстрирует, как этого добиться:
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION" myfile.go
Этот скрипт извлекает версию Git с помощью git rev-parse --short HEAD и присваивает ее переменной VERSION. Впоследствии команда go build вызывается с опцией -ldflags для встраивания переменной main.version в двоичный файл. Включение основного. имеет решающее значение, поскольку указывает на то, что переменная определена в основном пакете вашей программы Go.
Доступ к информации о версии
После того, как двоичный файл будет создан, вы сможете получить доступ информацию о версии Git с помощью следующей команды:
fmt.Println(version)
При выполнении этого кода редакция Git, внедренная в процессе сборки, будет напечатана в консоль. Это позволяет вам легко отслеживать версию кода, создавшего двоичный файл, что помогает в отладке и контроле версий.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3