Class: Ci::Pipelines::CreatePersistentRefService
- Inherits:
-
Object
- Object
- Ci::Pipelines::CreatePersistentRefService
- Defined in:
- app/services/ci/pipelines/create_persistent_ref_service.rb
Direct Known Subclasses
Constant Summary collapse
- TIMEOUT =
1.hour
- CACHE_KEY =
'pipeline:%{id}:create_persistent_ref_service'
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(pipeline) ⇒ CreatePersistentRefService
constructor
A new instance of CreatePersistentRefService.
Constructor Details
#initialize(pipeline) ⇒ CreatePersistentRefService
Returns a new instance of CreatePersistentRefService.
9 10 11 |
# File 'app/services/ci/pipelines/create_persistent_ref_service.rb', line 9 def initialize(pipeline) @pipeline = pipeline end |
Instance Method Details
#execute ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/ci/pipelines/create_persistent_ref_service.rb', line 13 def execute # NOTE: caching here is to prevent overwhelming calls to Gitaly API # triggered by the job transition to `running` in the same pipeline Rails.cache.fetch(pipeline_persistent_ref_cache_key, expires_in: TIMEOUT) do next true if persistent_ref.exist? next true if persistent_ref.create pipeline.drop!(:pipeline_ref_creation_failure) false end end |