diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index b8d77e624945ca9db7745578ccdbc62a2389bda4..445247f1b417d4880fe3544577dc9492f7530f6f 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -98,7 +98,6 @@ module Ci PipelineHooksWorker.perform_async(id) Ci::ExpirePipelineCacheService.new(project, nil) .execute(pipeline) - refresh_project_build_status_cache end end @@ -392,10 +391,6 @@ module Ci .fabricate! end - def refresh_project_build_status_cache - Gitlab::Cache::Ci::ProjectPipelineStatus.update_for_pipeline(self) - end - private def pipeline_data diff --git a/app/services/ci/expire_pipeline_cache_service.rb b/app/services/ci/expire_pipeline_cache_service.rb index c0e4a798f6aa790c4bd337c924f8f0f2c0059a53..91d9c1d2ba1b0d612d0859216091cff59b703437 100644 --- a/app/services/ci/expire_pipeline_cache_service.rb +++ b/app/services/ci/expire_pipeline_cache_service.rb @@ -10,6 +10,8 @@ module Ci store.touch(commit_pipelines_path) if pipeline.commit store.touch(new_merge_request_pipelines_path) merge_requests_pipelines_paths.each { |path| store.touch(path) } + + Gitlab::Cache::Ci::ProjectPipelineStatus.update_for_pipeline(@pipeline) end private diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index b71fd794d4ce7432ca6b906ba9b5623583fe4f7f..d7d6a75d38d1d95eaefff21f69ee263cf61635e9 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -375,7 +375,7 @@ describe Ci::Pipeline, models: true do end end - describe 'pipeline ETag caching' do + describe 'pipeline caching' do it 'executes ExpirePipelinesCacheService' do expect_any_instance_of(Ci::ExpirePipelineCacheService).to receive(:execute).with(pipeline) @@ -1079,17 +1079,6 @@ describe Ci::Pipeline, models: true do end end - describe 'update project cache when transitioning' do - let(:pipeline) { create(:ci_pipeline, sha: '123456') } - - it 'updates the cached status' do - expect(Gitlab::Cache::Ci::ProjectPipelineStatus).to receive(:update_for_pipeline). - with(pipeline) - - pipeline.block - end - end - describe 'notifications when pipeline success or failed' do let(:project) { create(:project, :repository) } diff --git a/spec/services/ci/expire_pipeline_cache_service_spec.rb b/spec/services/ci/expire_pipeline_cache_service_spec.rb index 3c735872c30c8dd51c558915c08d6c98dd8eb6fd..166c6dfc93ef2dd8104906319c76bfd6d1c84637 100644 --- a/spec/services/ci/expire_pipeline_cache_service_spec.rb +++ b/spec/services/ci/expire_pipeline_cache_service_spec.rb @@ -16,5 +16,12 @@ describe Ci::ExpirePipelineCacheService, services: true do subject.execute(pipeline) end + + it 'updates the cached status for a project' do + expect(Gitlab::Cache::Ci::ProjectPipelineStatus).to receive(:update_for_pipeline). + with(pipeline) + + subject.execute(pipeline) + end end end