Commit b0e18eaf authored by Rémy Coutable's avatar Rémy Coutable

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
parents b20ba361 bb910c3b
...@@ -105,6 +105,10 @@ class CommitStatus < ActiveRecord::Base ...@@ -105,6 +105,10 @@ class CommitStatus < ActiveRecord::Base
end end
end end
def locking_enabled?
status_changed?
end
def before_sha def before_sha
pipeline.before_sha || Gitlab::Git::BLANK_SHA pipeline.before_sha || Gitlab::Git::BLANK_SHA
end end
......
---
title: Make CI build to use optimistic locking only on status change
merge_request:
author:
...@@ -297,4 +297,40 @@ describe CommitStatus, :models do ...@@ -297,4 +297,40 @@ describe CommitStatus, :models do
end end
end 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 end
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