diff options
author | Robert Speicher <rspeicher@gmail.com> | 2016-12-27 15:58:43 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-12-27 15:58:43 -0500 |
commit | 3483ae91d64b48d2c47ab6895261b8344423ea7c (patch) | |
tree | 622acee4f3b9b2ebacd9c6ef97801220bddd33bf | |
parent | ffca0da08f22e6b23587ecf0645b44c3c427eddd (diff) | |
download | gitlab-ce-3483ae91d64b48d2c47ab6895261b8344423ea7c.tar.gz |
Revert "Merge branch 'fix-latest-pipeine-ordering' into 'master'
"
This reverts commit bdcdf454be9e26c5e72104b810869aa67e0baf28.
-rw-r--r-- | app/models/ci/pipeline.rb | 7 | ||||
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | spec/models/ci/pipeline_spec.rb | 14 |
3 files changed, 14 insertions, 9 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 6894a5763ff..f2f6453b3b9 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -93,8 +93,11 @@ module Ci .select("max(#{quoted_table_name}.id)") .group(:ref, :sha) - relation = ref ? where(ref: ref) : self - relation.where(id: max_id).order(id: :desc) + if ref + where(id: max_id, ref: ref) + else + where(id: max_id) + end end def self.latest_status(ref = nil) diff --git a/app/models/project.rb b/app/models/project.rb index 72fdd4514c4..26fa20f856d 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -418,7 +418,7 @@ class Project < ActiveRecord::Base repository.commit(ref) 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) latest_pipeline = pipelines.latest_successful_for(ref) diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index b28da6daabf..dc377d15f15 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -424,18 +424,20 @@ describe Ci::Pipeline, models: true do context 'when no ref is specified' do let(:pipelines) { described_class.latest.all } - it 'gives the latest pipelines for the same ref and different sha in reverse chronological order' do - expect(pipelines.map(&:sha)).to eq(%w[C B A]) - expect(pipelines.map(&:status)).to eq(%w[skipped failed success]) + it 'returns the latest pipeline for the same ref and different sha' do + expect(pipelines.map(&:sha)).to contain_exactly('A', 'B', 'C') + expect(pipelines.map(&:status)). + to contain_exactly('success', 'failed', 'skipped') end end context 'when ref is specified' do let(:pipelines) { described_class.latest('ref').all } - it 'gives the latest pipelines for ref and different sha in reverse chronological order' do - expect(pipelines.map(&:sha)).to eq(%w[B A]) - expect(pipelines.map(&:status)).to eq(%w[failed success]) + it 'returns the latest pipeline for ref and different sha' do + expect(pipelines.map(&:sha)).to contain_exactly('A', 'B') + expect(pipelines.map(&:status)). + to contain_exactly('success', 'failed') end end end |