Skip to content

Commit

Permalink
Merge pull request #2955 from zendesk/sathish/BRE-971
Browse files Browse the repository at this point in the history
buddy request fix for modified brach
  • Loading branch information
sathishavm authored Sep 26, 2018
2 parents 378fe38 + 640ea4b commit 45633bd
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
1 change: 1 addition & 0 deletions app/models/deploy_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def latest_approved_deploy(reference, project)

def copy_approval_from_last_deploy(deploy)
return false unless last_deploy = latest_approved_deploy(deploy.reference, deploy.stage.project)
return false if deploy.changeset_to(last_deploy).commits.any?
return false if stage_script_changed_after?(last_deploy)

deploy.buddy = (last_deploy.buddy == @user ? last_deploy.job.user : last_deploy.buddy)
Expand Down
14 changes: 12 additions & 2 deletions test/models/deploy_service_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@
before { BuddyCheck.stubs(:enabled?).returns(true) }
let(:deploy) { deploys(:succeeded_production_test) }

def create_previous_deploy(ref, stage, successful: true, bypassed: false)
job = project.jobs.create!(user: user, command: "foo", status: successful ? "succeeded" : 'failed')
def create_previous_deploy(ref, stage, successful: true, bypassed: false, commit: nil)
status = successful ? "succeeded" : 'failed'
job = project.jobs.create!(user: user, command: "foo", status: status, commit: commit)
buddy = bypassed ? user : other_user
Deploy.create!(job: job, reference: ref, stage: stage, buddy: buddy, started_at: Time.now, project: project)
end
Expand Down Expand Up @@ -85,6 +86,15 @@ def create_previous_deploy(ref, stage, successful: true, bypassed: false)
end
end

describe "similar deploy reference with different commit sha" do
it "does not start the deploy" do
create_previous_deploy(ref1, stage_production_1, commit: 'xyz')
Changeset.any_instance.expects(:commits).returns(['xyz'])
service.expects(:confirm_deploy).never
service.deploy(stage_production_1, reference: ref1)
end
end

describe "if deploy groups are enabled" do
before do
DeployGroup.stubs(:enabled?).returns(true)
Expand Down

0 comments on commit 45633bd

Please sign in to comment.