Merge branch 'optimistic-locking-ci-status-change' into 'master'
Make CI build to use optimistic locking only on status change Closes #29679 See merge request !10152
This commit is contained in:
commit
b0e18eaf87
|
@ -105,6 +105,10 @@ class CommitStatus < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def locking_enabled?
|
||||
status_changed?
|
||||
end
|
||||
|
||||
def before_sha
|
||||
pipeline.before_sha || Gitlab::Git::BLANK_SHA
|
||||
end
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Make CI build to use optimistic locking only on status change
|
||||
merge_request:
|
||||
author:
|
|
@ -297,4 +297,40 @@ describe CommitStatus, :models do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#locking_enabled?' do
|
||||
before do
|
||||
commit_status.lock_version = 100
|
||||
end
|
||||
|
||||
subject { commit_status.locking_enabled? }
|
||||
|
||||
context "when changing status" do
|
||||
before do
|
||||
commit_status.status = "running"
|
||||
end
|
||||
|
||||
it "lock" do
|
||||
is_expected.to be true
|
||||
end
|
||||
|
||||
it "raise exception when trying to update" do
|
||||
expect{ commit_status.save }.to raise_error(ActiveRecord::StaleObjectError)
|
||||
end
|
||||
end
|
||||
|
||||
context "when changing description" do
|
||||
before do
|
||||
commit_status.description = "test"
|
||||
end
|
||||
|
||||
it "do not lock" do
|
||||
is_expected.to be false
|
||||
end
|
||||
|
||||
it "save correctly" do
|
||||
expect(commit_status.save).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue