Commit b7ea3ce4 authored by Robert Speicher's avatar Robert Speicher

Merge branch '33600-fix-uncaught-throw-in-ee_compat_check' into 'master'

Fix an uncaught throw in the ee_compat_check job

Closes #33600

See merge request !12123
parents 8a37b4c2 e69924c4
...@@ -76,9 +76,13 @@ module Gitlab ...@@ -76,9 +76,13 @@ module Gitlab
step( step(
"Generating the patch against origin/master in #{patch_path}", "Generating the patch against origin/master in #{patch_path}",
%W[git diff --binary origin/master > #{patch_path}] %w[git diff --binary origin/master...HEAD]
) do |output, status| ) do |output, status|
throw(:halt_check, :ko) unless status.zero? && File.exist?(patch_path) throw(:halt_check, :ko) unless status.zero?
File.write(patch_path, output)
throw(:halt_check, :ko) unless File.exist?(patch_path)
end end
end end
...@@ -130,7 +134,15 @@ module Gitlab ...@@ -130,7 +134,15 @@ module Gitlab
step("Fetching CE/#{ce_branch}", %W[git fetch #{CE_REPO} #{ce_branch}]) step("Fetching CE/#{ce_branch}", %W[git fetch #{CE_REPO} #{ce_branch}])
step( step(
"Checking if #{patch_path} applies cleanly to EE/master", "Checking if #{patch_path} applies cleanly to EE/master",
%W[git apply --check --3way #{patch_path}] # Don't use --check here because it can result in a 0-exit status even
# though the patch doesn't apply cleanly, e.g.:
# > git apply --check --3way foo.patch
# error: patch failed: lib/gitlab/ee_compat_check.rb:74
# Falling back to three-way merge...
# Applied patch to 'lib/gitlab/ee_compat_check.rb' with conflicts.
# > echo $?
# 0
%W[git apply --3way #{patch_path}]
) do |output, status| ) do |output, status|
puts output puts output
unless status.zero? unless status.zero?
...@@ -145,6 +157,7 @@ module Gitlab ...@@ -145,6 +157,7 @@ module Gitlab
status = 0 if failed_files.empty? status = 0 if failed_files.empty?
end end
command(%w[git reset --hard])
status status
end end
end end
...@@ -292,7 +305,7 @@ module Gitlab ...@@ -292,7 +305,7 @@ module Gitlab
# In the CE repo # In the CE repo
$ git fetch origin master $ git fetch origin master
$ git diff --binary origin/master > #{ce_branch}.patch $ git diff --binary origin/master...HEAD -- > #{ce_branch}.patch
# In the EE repo # In the EE repo
$ git fetch origin master $ git fetch origin master
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment