Commit 1e38f8ae authored by Grzegorz Bizon's avatar Grzegorz Bizon

Merge branch 'revert-5c0f2541' into 'master'

Revert "Merge branch 'fix-latest-pipeine-ordering' into 'master'"

See merge request !8302
parents 1c3c5c2b 52a259dd
...@@ -93,8 +93,11 @@ module Ci ...@@ -93,8 +93,11 @@ module Ci
.select("max(#{quoted_table_name}.id)") .select("max(#{quoted_table_name}.id)")
.group(:ref, :sha) .group(:ref, :sha)
relation = ref ? where(ref: ref) : self if ref
relation.where(id: max_id).order(id: :desc) where(id: max_id, ref: ref)
else
where(id: max_id)
end
end end
def self.latest_status(ref = nil) def self.latest_status(ref = nil)
......
...@@ -418,7 +418,7 @@ class Project < ActiveRecord::Base ...@@ -418,7 +418,7 @@ class Project < ActiveRecord::Base
repository.commit(ref) repository.commit(ref)
end end
# ref can't be HEAD or SHA, can only be branch/tag name # ref can't be HEAD, can only be branch/tag name or SHA
def latest_successful_builds_for(ref = default_branch) def latest_successful_builds_for(ref = default_branch)
latest_pipeline = pipelines.latest_successful_for(ref) latest_pipeline = pipelines.latest_successful_for(ref)
......
---
title: Fix finding the latest pipeline
merge_request: 8286
author:
...@@ -424,18 +424,20 @@ describe Ci::Pipeline, models: true do ...@@ -424,18 +424,20 @@ describe Ci::Pipeline, models: true do
context 'when no ref is specified' do context 'when no ref is specified' do
let(:pipelines) { described_class.latest.all } let(:pipelines) { described_class.latest.all }
it 'gives the latest pipelines for the same ref and different sha in reverse chronological order' do it 'returns the latest pipeline for the same ref and different sha' do
expect(pipelines.map(&:sha)).to eq(%w[C B A]) expect(pipelines.map(&:sha)).to contain_exactly('A', 'B', 'C')
expect(pipelines.map(&:status)).to eq(%w[skipped failed success]) expect(pipelines.map(&:status)).
to contain_exactly('success', 'failed', 'skipped')
end end
end end
context 'when ref is specified' do context 'when ref is specified' do
let(:pipelines) { described_class.latest('ref').all } let(:pipelines) { described_class.latest('ref').all }
it 'gives the latest pipelines for ref and different sha in reverse chronological order' do it 'returns the latest pipeline for ref and different sha' do
expect(pipelines.map(&:sha)).to eq(%w[B A]) expect(pipelines.map(&:sha)).to contain_exactly('A', 'B')
expect(pipelines.map(&:status)).to eq(%w[failed success]) expect(pipelines.map(&:status)).
to contain_exactly('success', 'failed')
end 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