Skip to content
Snippets Groups Projects
Verified Commit d7cdcc51 authored by Minqi Pan's avatar Minqi Pan Committed by Rémy Coutable
Browse files

Expire related caches after changing HEAD


Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent f1bd9f05
No related branches found
No related tags found
1 merge request!8584Expire related caches after changing HEAD
Pipeline #
......@@ -1032,7 +1032,7 @@ def change_head(branch)
"refs/heads/#{branch}",
force: true)
repository.copy_gitattributes(branch)
repository.expire_avatar_cache
repository.after_change_head
reload_default_branch
end
......
......@@ -439,6 +439,11 @@ def before_import
expire_content_cache
end
# Runs code after the HEAD of a repository is changed.
def after_change_head
expire_method_caches(METHOD_CACHES_FOR_FILE_TYPES.keys)
end
# Runs code after a repository has been forked/imported.
def after_import
expire_content_cache
......
---
title: Expire related caches after changing HEAD
merge_request:
author: Minqi Pan
......@@ -1545,11 +1545,13 @@ def create_build(new_pipeline = pipeline, name = 'test')
end
end
describe 'change_head' do
describe '#change_head' do
let(:project) { create(:project) }
it 'calls the before_change_head method' do
it 'calls the before_change_head and after_change_head methods' do
expect(project.repository).to receive(:before_change_head)
expect(project.repository).to receive(:after_change_head)
project.change_head(project.default_branch)
end
......@@ -1565,11 +1567,6 @@ def create_build(new_pipeline = pipeline, name = 'test')
project.change_head(project.default_branch)
end
it 'expires the avatar cache' do
expect(project.repository).to receive(:expire_avatar_cache)
project.change_head(project.default_branch)
end
it 'reloads the default branch' do
expect(project).to receive(:reload_default_branch)
project.change_head(project.default_branch)
......
......@@ -1150,6 +1150,24 @@
end
end
describe '#after_change_head' do
it 'flushes the readme cache' do
expect(repository).to receive(:expire_method_caches).with([
:readme,
:changelog,
:license,
:contributing,
:version,
:gitignore,
:koding,
:gitlab_ci,
:avatar
])
repository.after_change_head
end
end
describe '#before_push_tag' do
it 'flushes the cache' do
expect(repository).to receive(:expire_statistics_caches)
......@@ -1513,14 +1531,6 @@
end
end
describe '#expire_avatar_cache' do
it 'expires the cache' do
expect(repository).to receive(:expire_method_caches).with(%i(avatar))
repository.expire_avatar_cache
end
end
describe '#file_on_head' do
context 'with a non-existing repository' do
it 'returns nil' do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment