ホームページ >バックエンド開発 >Golang >Github Actions Goラムダプロジェクトの異なるsha256sums

Github Actions Goラムダプロジェクトの異なるsha256sums

WBOY
WBOY転載
2024-02-06 11:30:03657ブラウズ

Github Actions Go lambda 项目不同的 sha256sums

質問内容

golang aws lambda プロジェクトがあります。 Terraformスクリプトを使用してgithub actinosにデプロイしました。 次のような状況があります。 ビルド #1

リーリー

他のファイルにもインポートされていないファイルに 1 つの変更を加えました。 ビルド #2

リーリー

zip サイズは変更されましたが、バイナリは変更されませんでした

これは私のメイクファイルの重要な部分です

リーリー

同じ変更をローカルで加え、terraform または「act」と呼ばれるツールを使用してビルドを実行すると、そのような変更は行われません。github アクションのみです。 同じサイズを維持する必要があるため、 sha256sum に影響します(すべての lambda をデプロイするのを避けるため)。 何が原因でしょうか?


正解


この回答は、go バイナリの反復可能なビルドに焦点を当てています。

go バイナリのサイズは同じであることが示されていますが、内容が異なるとは思えません。これを確認するには、まずバイナリのハッシュをチェックしてください。

再現可能なビルドを取得するには、他の明らかな要件に加えて、次のものが必要です。

  1. cgo ビルドが再現可能であること (ツールチェーン、依存関係など) を確認するか、cgo を無効にしてください。 CGO_ENABLED=0 を設定しました (この情報は、削除された別の質問によって提供されました)。
  2. -trimpath フラグを使用します。おそらく、GitHub アクションはソース コードを常に同じディレクトリに配置します。セキュリティ上の理由から、このオプションを指定します。
  3. -buildvcs=false を設定します。デフォルト (「自動」) では、バージョン管理情報が利用可能な場合、バイナリにタグ付けされます。これは、README のみが異なる 2 つのコミットが異なるバイナリを生成する理由を説明しています。

参考文献:

以上がGithub Actions Goラムダプロジェクトの異なるsha256sumsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。