Rumah >pembangunan bahagian belakang >Golang >Github Actions Go projek lambda sha256sum yang berbeza
Saya ada projek golang aws lambda. Saya menggunakannya pada github actinos menggunakan skrip terraform. Saya mempunyai situasi seperti ini: Binaan #1
-rwxr-xr-x 1 runner docker 14717304 jan 1 2022 atest -rw-r--r-- 1 runner docker 7776780 jan 1 2022 atest.zip
Saya membuat 1 perubahan dalam fail yang tidak diimport dalam mana-mana fail lain, dan Binaan #2
-rwxr-xr-x 1 runner docker 14717304 jan 1 2022 atest -rw-r--r-- 1 runner docker 7776755 jan 1 2022 atest.zip
saiz zip berubah, tetapi bukan fail binari
Ini adalah bahagian penting dalam makefile saya
build: ## Build Linux binary with path consistent with passed functionction layere (layer) and functionction name (function) build: resolve-env @$(BUILD_FLAGS) ${GOCMD} build ${LDFLAGS} -o ${BINARY_PATH} ${GO_PKG} @touch -t 202201010000.00 ${BINARY_PATH} .PHONY: package package: build @cd ${DST} && ${ZIPCMD} -X -q --latest-time ${ABS_ZIP_PATH} ${function} @touch -t 202201010000.00 ${ABS_ZIP_PATH}
Apabila saya membuat perubahan yang sama secara setempat dan menjalankan binaan menggunakan terraform atau alat yang dipanggil "bertindak", tiada perubahan sedemikian..hanya pada tindakan github. Saya perlu mengekalkan saiz yang sama, yang mempengaruhi sha256sum (untuk mengelakkan penggunaan setiap lambda ). Apakah sebabnya?
Jawapan ini memfokuskan pada binari go yang boleh berulang.
Walaupun ia menunjukkan bahawa binari go mempunyai saiz yang sama, saya ragu-ragu kandungannya berbeza. Sila semak cincang binari terlebih dahulu untuk mengesahkan ini.
Untuk mendapatkan binaan yang boleh dihasilkan semula, antara keperluan lain yang jelas, anda perlukan:
CGO_ENABLED=0
(maklumat ini diberikan oleh soalan lain yang dipadamkan). -trimpath
. Mungkin tindakan GitHub sentiasa meletakkan kod sumber dalam direktori yang sama. Atas sebab keselamatan, kami menentukan pilihan ini. -buildvcs=false
. Secara lalai ("auto") maklumat kawalan versi akan ditag ke dalam binari jika tersedia. Ini menjelaskan mengapa dua komit yang berbeza hanya dalam README menghasilkan binari yang berbeza. Rujukan:
Atas ialah kandungan terperinci Github Actions Go projek lambda sha256sum yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!