summaryrefslogtreecommitdiff
path: root/app/models/ci/pipeline.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ci/pipeline.rb')
-rw-r--r--app/models/ci/pipeline.rb17
1 files changed, 13 insertions, 4 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index 53ff42c04f4..5587b19fd69 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -50,6 +50,11 @@ module Ci
external: 6
}
+ enum config_source: {
+ repository: nil,
+ auto_devops: 1
+ }
+
state_machine :status, initial: :created do
event :enqueue do
transition created: :pending
@@ -338,10 +343,14 @@ module Ci
def ci_yaml_file
return @ci_yaml_file if defined?(@ci_yaml_file)
- @ci_yaml_file = (ci_yaml_from_repo || implied_ci_yaml_file).tap do |config|
- unless config
- self.yaml_errors = "Failed to load CI/CD config file for #{sha}"
- end
+ @ci_yaml_file = ci_yaml_from_repo
+ @ci_yaml_file ||= implied_ci_yaml_file&.tap { self.auto_devops! }
+
+ if @ci_yaml_file
+ @ci_yaml_file
+ else
+ self.yaml_errors = "Failed to load CI/CD config file for #{sha}"
+ nil
end
end