Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
a83f79c0
Commit
a83f79c0
authored
Oct 29, 2018
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into ce-to-ee-2018-10-29
parents
f983def9
5a460397
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
4 deletions
+24
-4
changelogs/unreleased/52780-stale-pipeline-status-cache-for-_project-after-disabling-pipelines.yml
...e-status-cache-for-_project-after-disabling-pipelines.yml
+5
-0
lib/gitlab/cache/ci/project_pipeline_status.rb
lib/gitlab/cache/ci/project_pipeline_status.rb
+4
-4
spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb
spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb
+15
-0
No files found.
changelogs/unreleased/52780-stale-pipeline-status-cache-for-_project-after-disabling-pipelines.yml
0 → 100644
View file @
a83f79c0
---
title
:
Cache pipeline status per SHA.
merge_request
:
22589
author
:
type
:
fixed
lib/gitlab/cache/ci/project_pipeline_status.rb
View file @
a83f79c0
...
...
@@ -42,7 +42,7 @@ module Gitlab
end
def
self
.
cache_key_for_project
(
project
)
"
#{
Gitlab
::
Redis
::
Cache
::
CACHE_NAMESPACE
}
:projects/
#{
project
.
id
}
/pipeline_status"
"
#{
Gitlab
::
Redis
::
Cache
::
CACHE_NAMESPACE
}
:projects/
#{
project
.
id
}
/pipeline_status
/
#{
project
.
commit
&
.
sha
}
"
end
def
self
.
update_for_pipeline
(
pipeline
)
...
...
@@ -84,9 +84,7 @@ module Gitlab
def
load_from_project
return
unless
commit
self
.
sha
=
commit
.
sha
self
.
status
=
commit
.
status
self
.
ref
=
project
.
default_branch
self
.
sha
,
self
.
status
,
self
.
ref
=
commit
.
sha
,
commit
.
status
,
project
.
default_branch
end
# We only cache the status for the HEAD commit of a project
...
...
@@ -104,6 +102,8 @@ module Gitlab
def
load_from_cache
Gitlab
::
Redis
::
Cache
.
with
do
|
redis
|
self
.
sha
,
self
.
status
,
self
.
ref
=
redis
.
hmget
(
cache_key
,
:sha
,
:status
,
:ref
)
self
.
status
=
nil
if
self
.
status
.
empty?
end
end
...
...
spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb
View file @
a83f79c0
...
...
@@ -282,6 +282,21 @@ describe Gitlab::Cache::Ci::ProjectPipelineStatus, :clean_gitlab_redis_cache do
expect
(
pipeline_status
.
status
).
to
eq
(
status
)
expect
(
pipeline_status
.
ref
).
to
eq
(
ref
)
end
context
'when status is empty string'
do
before
do
Gitlab
::
Redis
::
Cache
.
with
do
|
redis
|
redis
.
mapped_hmset
(
cache_key
,
{
sha:
sha
,
status:
''
,
ref:
ref
})
end
end
it
'reads the status as nil'
do
pipeline_status
.
load_from_cache
expect
(
pipeline_status
.
status
).
to
eq
(
nil
)
end
end
end
describe
'#has_cache?'
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment