Commit 8c60c671 authored by Scott Hampton's avatar Scott Hampton Committed by Kamil Trzciński

Hide CI status when pipelines disabled

Pipeline status was showing failed on projects when CI was disabled.

This checks to see if the feature is enabled before showing the status.
parent a91bacf5
......@@ -595,6 +595,14 @@ class Project < ActiveRecord::Base
end
end
def ci_pipelines
if builds_enabled?
super
else
super.external
end
end
# returns all ancestor-groups upto but excluding the given namespace
# when no namespace is given, all ancestors upto the top are returned
def ancestors_upto(top = nil, hierarchy_order: nil)
......
---
title: Hide pipeline status when pipelines are disabled on project.
merge_request: 25204
author:
type: fixed
......@@ -428,6 +428,30 @@ describe Project do
end
end
describe '#ci_pipelines' do
let(:project) { create(:project) }
before do
create(:ci_pipeline, project: project, ref: 'master', source: :web)
create(:ci_pipeline, project: project, ref: 'master', source: :external)
end
it 'has ci pipelines' do
expect(project.ci_pipelines.size).to eq(2)
end
context 'when builds are disabled' do
before do
project.project_feature.update_attribute(:builds_access_level, ProjectFeature::DISABLED)
end
it 'should return .external pipelines' do
expect(project.ci_pipelines).to all(have_attributes(source: 'external'))
expect(project.ci_pipelines.size).to eq(1)
end
end
end
describe 'project token' do
it 'sets an random token if none provided' do
project = FactoryBot.create(:project, runners_token: '')
......
require 'spec_helper'
describe 'projects/commits/_commit.html.haml' do
let(:project) { create(:project, :repository) }
let(:commit) { project.repository.commit(ref) }
before do
allow(view).to receive(:current_application_settings).and_return(Gitlab::CurrentSettings.current_application_settings)
end
context 'with a singed commit' do
let(:project) { create(:project, :repository) }
let(:repository) { project.repository }
context 'with a signed commit' do
let(:ref) { GpgHelpers::SIGNED_COMMIT_SHA }
let(:commit) { repository.commit(ref) }
it 'does not display a loading spinner for GPG status' do
render partial: 'projects/commits/commit', locals: {
......@@ -23,4 +23,55 @@ describe 'projects/commits/_commit.html.haml' do
end
end
end
context 'with ci status' do
let(:ref) { 'master' }
let(:user) { create(:user) }
before do
allow(view).to receive(:current_user).and_return(user)
project.add_developer(user)
create(
:ci_empty_pipeline,
ref: 'master',
sha: commit.id,
status: 'success',
project: project
)
end
context 'when pipelines are disabled' do
before do
allow(project).to receive(:builds_enabled?).and_return(false)
end
it 'does not display a ci status icon' do
render partial: 'projects/commits/commit', locals: {
project: project,
ref: ref,
commit: commit
}
expect(rendered).not_to have_css('.ci-status-link')
end
end
context 'when pipelines are enabled' do
before do
allow(project).to receive(:builds_enabled?).and_return(true)
end
it 'does display a ci status icon when pipelines are enabled' do
render partial: 'projects/commits/commit', locals: {
project: project,
ref: ref,
commit: commit
}
expect(rendered).to have_css('.ci-status-link')
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