Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membenamkan Semakan Git dalam Go Binari Tanpa Mengubah Suai Kod Sumber?

Bagaimana untuk Membenamkan Semakan Git dalam Go Binari Tanpa Mengubah Suai Kod Sumber?

DDD
DDDasal
2024-10-29 11:05:29391semak imbas

How to Embed Git Revision in Go Binaries Without Modifying Source Code?

Menambahkan Semakan Git pada Binary Builds in Go

Keperluan biasa dalam pembangunan perisian adalah untuk menjejaki asal usul boleh laku binari. Ini amat berguna untuk menyelesaikan masalah dan mewujudkan versi sumber dari mana binari dibina. Dalam Go, ia mungkin kelihatan intuitif untuk menambah nombor semakan terus pada kod sumber, tetapi pendekatan ini menimbulkan kebimbangan tentang mengubah sumber.

Sebaliknya, pertimbangkan untuk memasukkan semakan git semasa proses binaan. Pendekatan ini memastikan bahawa binari mencerminkan semakan yang digunakan dalam penciptaannya tanpa mengubah suai kod sumber.

Membina Binari dengan Git Revision

Untuk mencapainya, gunakan git rev -parse --arahan HEAD pendek untuk mendapatkan semula cincang semakan yang dipendekkan. Seterusnya, tetapkan nilai ini kepada pembolehubah bernama $VERSION dalam skrip shell.

Dalam kod sumber Go anda, isytiharkan pembolehubah versi dalam pakej utama. Pembolehubah ini harus mempunyai jenis data rentetan.

Akhir sekali, semasa proses binaan, laksanakan arahan berikut untuk membenamkan maklumat versi ke dalam binari:

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

Dengan melaksanakan arahan semasa membina, anda boleh membenamkan semakan git secara dinamik ke dalam binari tanpa mengubah kod sumber. Untuk mengakses maklumat semakan, cuma dapatkan semula nilai pembolehubah versi dalam program Go anda.

Atas ialah kandungan terperinci Bagaimana untuk Membenamkan Semakan Git dalam Go Binari Tanpa Mengubah Suai Kod Sumber?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn