golang aws lambda プロジェクトがあります。 Terraformスクリプトを使用してgithub actinosにデプロイしました。 次のような状況があります。 ビルド #1
リーリー他のファイルにもインポートされていないファイルに 1 つの変更を加えました。 ビルド #2
リーリーzip サイズは変更されましたが、バイナリは変更されませんでした
これは私のメイクファイルの重要な部分です
リーリー同じ変更をローカルで加え、terraform または「act」と呼ばれるツールを使用してビルドを実行すると、そのような変更は行われません。github アクションのみです。 同じサイズを維持する必要があるため、 sha256sum に影響します(すべての lambda をデプロイするのを避けるため)。 何が原因でしょうか?
この回答は、go バイナリの反復可能なビルドに焦点を当てています。
go バイナリのサイズは同じであることが示されていますが、内容が異なるとは思えません。これを確認するには、まずバイナリのハッシュをチェックしてください。
再現可能なビルドを取得するには、他の明らかな要件に加えて、次のものが必要です。
CGO_ENABLED=0
を設定しました (この情報は、削除された別の質問によって提供されました)。 -trimpath
フラグを使用します。おそらく、GitHub アクションはソース コードを常に同じディレクトリに配置します。セキュリティ上の理由から、このオプションを指定します。 -buildvcs=false
を設定します。デフォルト (「自動」) では、バージョン管理情報が利用可能な場合、バイナリにタグ付けされます。これは、README のみが異なる 2 つのコミットが異なるバイナリを生成する理由を説明しています。 参考文献:
以上がGithub Actions Goラムダプロジェクトの異なるsha256sumsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。