summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Frye <joshfng@gmail.com>2016-05-31 16:01:16 -0400
committerJosh Frye <joshfng@gmail.com>2016-06-02 11:10:57 -0400
commit4d9622e7d3e927ad158d26c780fee64c6d8183bc (patch)
tree05707981c77f8871dd91dccf76d38adc09aa8ff4
parent2d05de7af8de9a11f5bdfec0dd3f294a0148d023 (diff)
downloadgitlab-ce-4d9622e7d3e927ad158d26c780fee64c6d8183bc.tar.gz
Invalidate cache on build change
-rw-r--r--app/models/ci/build.rb1
-rw-r--r--app/models/project.rb6
2 files changed, 6 insertions, 1 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 5e77fda70b9..f597f920a3b 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -313,6 +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
end
def artifacts?
diff --git a/app/models/project.rb b/app/models/project.rb
index 1375dab8c34..3b5ca05dc3f 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1013,8 +1013,12 @@ class Project < ActiveRecord::Base
end
def running_or_pending_build_count
- Rails.cache.fetch(['projects', id, 'running_or_pending_build_count'], expires_in: 60) do
+ Rails.cache.fetch(['projects', id, 'running_or_pending_build_count']) 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