From 0b0d9a6066c4fc2194b73ad389b306dd186c278e Mon Sep 17 00:00:00 2001 From: Joseph Sweeney Date: Thu, 25 Jan 2024 10:31:22 -0500 Subject: [PATCH] Add option to retain tmpdir on pr-pull This option will be used to generate build provenance in the `publish-commit-bottles.yml` workflow in `Homebrew/homebrew-core`. It adds a single flag that controls whether or not the temporary directory where bottles are downloaded is retained. --- Library/Homebrew/dev-cmd/pr-pull.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/pr-pull.rb b/Library/Homebrew/dev-cmd/pr-pull.rb index 82a60194c7..f0af2df1aa 100644 --- a/Library/Homebrew/dev-cmd/pr-pull.rb +++ b/Library/Homebrew/dev-cmd/pr-pull.rb @@ -43,6 +43,8 @@ module Homebrew switch "--warn-on-upload-failure", description: "Warn instead of raising an error if the bottle upload fails. " \ "Useful for repairing bottle uploads that previously failed." + switch "--retain-bottle-dir", + description: "Does not clean up the tmp directory for the bottle so it can be used later." flag "--committer=", description: "Specify a committer name and email in `git`'s standard author format." flag "--message=", @@ -444,7 +446,8 @@ module Homebrew pr_check_conflicts("#{user}/#{repo}", pr) ohai "Fetching #{tap} pull request ##{pr}" - Dir.mktmpdir pr do |dir| + dir = Dir.mktmpdir pr + begin cd dir do current_branch_head = ENV["GITHUB_SHA"] || tap.git_head original_commit = if args.no_cherry_pick? @@ -501,6 +504,12 @@ module Homebrew upload_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using safe_system HOMEBREW_BREW_FILE, *upload_args end + ensure + if args.retain_bottle_dir? + puts "::set-output name=bottle_path::#{dir}" + else + FileUtils.remove_entry dir + end end end end