Make goreleaser archives reproducible #6299
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use commit time in mod_timestamp, as documented in:
https://goreleaser.com/customization/builds/#reproducible-builds
https://goreleaser.com/blog/reproducible-builds/
https://goreleaser.com/customization/templates/?h=templates#common-fields
Test plan:
Before.
Build two times:
Observe all the shasums are different:
![image](https://private-user-images.githubusercontent.com/5295986/398247659-ed0b932c-ab5b-46de-bf73-0516e223af8a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjI4NTcsIm5iZiI6MTczOTI2MjU1NywicGF0aCI6Ii81Mjk1OTg2LzM5ODI0NzY1OS1lZDBiOTMyYy1hYjViLTQ2ZGUtYmY3My0wNTE2ZTIyM2FmOGEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTFUMDgyOTE3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzhiM2UzMTdiYmRhOGE0NTExM2QyOGY5OTdmNGVhZTRlN2U5MmFiY2JlNDdhMzVkMTcyODYzOTY0OTIwMDNmOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.3Y-DhzoZLKpB3IYiBPRNp6apeRWIS9Oxnq_x-_ER300)
After:
Do the build two times,
Observe that only rpm and deb packages are different
![image](https://private-user-images.githubusercontent.com/5295986/398247849-ad4e3786-5d2b-480b-9e66-c2824f379d57.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjI4NTcsIm5iZiI6MTczOTI2MjU1NywicGF0aCI6Ii81Mjk1OTg2LzM5ODI0Nzg0OS1hZDRlMzc4Ni01ZDJiLTQ4MGItOWU2Ni1jMjgyNGYzNzlkNTcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTFUMDgyOTE3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Nzk0Y2VkOGUyZmYzMThlMTYxMWMyYzQzMDdjZjZiNzY4NWY4ZGRmZjAyYTI5NjIxZTRhNTJmMDhjNGQ2ZjQ4MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.WzGXLdNd-J-ejCenJ99jn14HLfR-6-q2Bucpjj0PEi8)
There was a feature added to goreleaser to make packages reproducible too, but I haven't figured out how to use it yet:
goreleaser/nfpm#748
I asked in Discord. We can tackle that separately
Signed-off-by: Alex Bozhenko [email protected]