Skip to content

Commit

Permalink
Use deterministic SOURCE_DATE_EPOCH
Browse files Browse the repository at this point in the history
  • Loading branch information
ianks committed Feb 1, 2025
1 parent c21f978 commit e6d194f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion docker/setup/rb-sys-dock.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set -e

setup_sudoers() {
echo "Defaults env_keep += \"BUNDLE_PATH RB_SYS_CARGO_TARGET_DIR RAKEOPT RUBY_TARGET\"" >> /etc/sudoers.d/rb-sys-dock
echo "Defaults env_keep += \"BUNDLE_PATH RB_SYS_CARGO_TARGET_DIR RAKEOPT RUBY_TARGET GEM_PRIVATE_KEY_PASSPHRASE SOURCE_DATE_EPOCH\"" >> /etc/sudoers.d/rb-sys-dock
}

main() {
Expand Down
14 changes: 14 additions & 0 deletions gem/exe/rb-sys-dock
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@ def rcd(input_args)
-e RB_SYS_CARGO_TARGET_DIR=#{tmp_target_dir.inspect} \
-e RUBY_CC_VERSION="#{ruby_versions}" \
-e RUBY_TARGET="#{OPTIONS.fetch(:platform)}" \
-e SOURCE_DATE_EPOCH="#{source_date_epoch}" \
-e RAKEOPT \
-e TERM \
-w #{working_directory} \
Expand All @@ -410,6 +411,19 @@ def rcd(input_args)
exec(cmd)
end

def source_date_epoch
return ENV["SOURCE_DATE_EPOCH"] if ENV.key?("SOURCE_DATE_EPOCH")

stdout, status = Open3.capture2("git log -1 --pretty=%ct")

if status.success?
stdout.strip
else
logger.warn("Could not determine SOURCE_DATE_EPOCH from git log, using current time")
Time.now.to_i.to_s
end
end

def download_image
image = ENV.fetch("RCD_IMAGE")

Expand Down

0 comments on commit e6d194f

Please sign in to comment.