Rumah > pembangunan bahagian belakang > Golang > Github Actions Go projek lambda sha256sum yang berbeza

Github Actions Go projek lambda sha256sum yang berbeza

WBOY
Lepaskan: 2024-02-06 11:30:03
ke hadapan
667 orang telah melayarinya

Github Actions Go lambda 项目不同的 sha256sums

Isi soalan

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
Salin selepas log masuk

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
Salin selepas log masuk

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}
Salin selepas log masuk

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 Betul


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:

  1. Pastikan binaan cgo boleh dihasilkan semula (rantai alat, kebergantungan, dll.), atau lumpuhkan cgo. Anda telah pun menyediakannya CGO_ENABLED=0 (maklumat ini diberikan oleh soalan lain yang dipadamkan).
  2. Gunakan bendera -trimpath. Mungkin tindakan GitHub sentiasa meletakkan kod sumber dalam direktori yang sama. Atas sebab keselamatan, kami menentukan pilihan ini.
  3. Tetapan-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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan