Refactor. Add tests.
This commit is contained in:
parent
4d9622e7d3
commit
2605a0a844
7 changed files with 10 additions and 17 deletions
|
@ -28,6 +28,7 @@ v 8.9.0 (unreleased)
|
|||
- Make authentication service for Container Registry to be compatible with < Docker 1.11
|
||||
- Add Application Setting to configure Container Registry token expire delay (default 5min)
|
||||
- Cache assigned issue and merge request counts in sidebar nav
|
||||
- Cache project build count in sidebar nav
|
||||
|
||||
v 8.8.3
|
||||
- Fix incorrect links on pipeline page when merge request created from fork
|
||||
|
|
|
@ -313,7 +313,7 @@ module Ci
|
|||
build_data = Gitlab::BuildDataBuilder.build(self)
|
||||
project.execute_hooks(build_data.dup, :build_hooks)
|
||||
project.execute_services(build_data.dup, :build_hooks)
|
||||
project.expire_running_or_pending_build_count
|
||||
project.running_or_pending_build_count(force: true)
|
||||
end
|
||||
|
||||
def artifacts?
|
||||
|
|
|
@ -1012,13 +1012,9 @@ class Project < ActiveRecord::Base
|
|||
update_attribute(:pending_delete, true)
|
||||
end
|
||||
|
||||
def running_or_pending_build_count
|
||||
Rails.cache.fetch(['projects', id, 'running_or_pending_build_count']) do
|
||||
def running_or_pending_build_count(force: false)
|
||||
Rails.cache.fetch(['projects', id, 'running_or_pending_build_count'], force: force) do
|
||||
builds.running_or_pending.count(:all)
|
||||
end
|
||||
end
|
||||
|
||||
def expire_running_or_pending_build_count
|
||||
Rails.cache.delete(['projects', id, 'running_or_pending_build_count'])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -52,15 +52,6 @@
|
|||
= icon('ship fw')
|
||||
%span
|
||||
Pipelines
|
||||
%span.badge.count.ci_counter= number_with_delimiter(@project.ci_commits.running_or_pending.count)
|
||||
|
||||
- if project_nav_tab? :builds
|
||||
= nav_link(controller: %w(builds)) do
|
||||
= link_to project_builds_path(@project), title: 'Builds', class: 'shortcuts-builds' do
|
||||
= icon('cubes fw')
|
||||
%span
|
||||
Builds
|
||||
%span.badge.count.builds_counter= number_with_delimiter(@project.running_or_pending_build_count)
|
||||
|
||||
- if project_nav_tab? :container_registry
|
||||
= nav_link(controller: %w(container_registry)) do
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
= link_to project_builds_path(@project), title: 'Builds', class: 'shortcuts-builds' do
|
||||
%span
|
||||
Builds
|
||||
%span.badge.count.builds_counter= number_with_delimiter(@project.builds.running_or_pending.count(:all))
|
||||
%span.badge.count.builds_counter= number_with_delimiter(@project.running_or_pending_build_count)
|
||||
|
|
|
@ -24,3 +24,4 @@ Feature: Project Builds Summary
|
|||
Then recent build has been erased
|
||||
And recent build summary does not have artifacts widget
|
||||
And recent build summary contains information saying that build has been erased
|
||||
And the build count cache is updated
|
||||
|
|
|
@ -36,4 +36,8 @@ class Spinach::Features::ProjectBuildsSummary < Spinach::FeatureSteps
|
|||
expect(page).to have_content 'Build has been erased'
|
||||
end
|
||||
end
|
||||
|
||||
step 'the build count cache is updated' do
|
||||
expect(@build.project.running_or_pending_build_count).to eq @build.project.builds.running_or_pending.count(:all)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue