diff options
author | Rémy Coutable <remy@rymai.me> | 2017-06-13 11:02:33 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-06-21 19:23:51 +0200 |
commit | e69924c4c77c49dbf4ad037046f833609dcf8122 (patch) | |
tree | e9a60b4ad1f73d6454c7be0bb85d755b00419a77 /lib | |
parent | 6a3049d589fdfcc1eacc7065669f305741a09a0b (diff) | |
download | gitlab-ce-e69924c4c77c49dbf4ad037046f833609dcf8122.tar.gz |
Fix an uncaught throw in the ee_compat_check job
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/ee_compat_check.rb | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/gitlab/ee_compat_check.rb b/lib/gitlab/ee_compat_check.rb index 6d326ee213a..1a5887dab7e 100644 --- a/lib/gitlab/ee_compat_check.rb +++ b/lib/gitlab/ee_compat_check.rb @@ -76,9 +76,13 @@ module Gitlab step( "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| - 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 @@ -130,7 +134,15 @@ module Gitlab step("Fetching CE/#{ce_branch}", %W[git fetch #{CE_REPO} #{ce_branch}]) step( "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| puts output unless status.zero? @@ -145,6 +157,7 @@ module Gitlab status = 0 if failed_files.empty? end + command(%w[git reset --hard]) status end end @@ -292,7 +305,7 @@ module Gitlab # In the CE repo $ 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 $ git fetch origin master |