diff options
Diffstat (limited to 'lib/tasks/gitlab/usage_data.rake')
-rw-r--r-- | lib/tasks/gitlab/usage_data.rake | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/lib/tasks/gitlab/usage_data.rake b/lib/tasks/gitlab/usage_data.rake index 73a79427da3..159b70cd673 100644 --- a/lib/tasks/gitlab/usage_data.rake +++ b/lib/tasks/gitlab/usage_data.rake @@ -43,17 +43,10 @@ namespace :gitlab do # Do not edit it manually! BANNER - repository_includes = ci_template_includes_hash(:repository_source) - auto_devops_jobs_includes = ci_template_includes_hash(:auto_devops_source, 'Jobs') - auto_devops_security_includes = ci_template_includes_hash(:auto_devops_source, 'Security') - all_includes = [ - *repository_includes, - ci_template_event('p_ci_templates_implicit_auto_devops'), - *auto_devops_jobs_includes, - *auto_devops_security_includes - ] - - File.write(Gitlab::UsageDataCounters::CiTemplateUniqueCounter::KNOWN_EVENTS_FILE_PATH, banner + YAML.dump(all_includes).gsub(/ *$/m, '')) + all_includes = explicit_template_includes + implicit_auto_devops_includes + yaml = banner + YAML.dump(all_includes).gsub(/ *$/m, '') + + File.write(Gitlab::UsageDataCounters::CiTemplateUniqueCounter::KNOWN_EVENTS_FILE_PATH, yaml) end desc 'GitLab | UsageDataMetrics | Generate raw SQL metrics queries for RSpec' @@ -65,16 +58,27 @@ namespace :gitlab do end FileUtils.mkdir_p(path) - FileUtils.chdir(path) - File.write('sql_metrics_queries.json', Gitlab::Json.pretty_generate(queries)) + File.write(File.join(path, 'sql_metrics_queries.json'), Gitlab::Json.pretty_generate(queries)) + end + + # Events for templates included via YAML-less Auto-DevOps + def implicit_auto_devops_includes + Gitlab::UsageDataCounters::CiTemplateUniqueCounter + .all_included_templates('Auto-DevOps.gitlab-ci.yml') + .map { |template| implicit_auto_devops_event(template) } + .uniq + .sort_by { _1['name'] } end - def ci_template_includes_hash(source, template_directory = nil) - Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_templates("lib/gitlab/ci/templates/#{template_directory}").map do |template| - expanded_template_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.expand_template_name("#{template_directory}/#{template}") - event_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_template_event_name(expanded_template_name, source) + # Events for templates included in a .gitlab-ci.yml using include:template + def explicit_template_includes + Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_templates("lib/gitlab/ci/templates/").each_with_object([]) do |template, result| + expanded_template_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.expand_template_name(template) + next unless expanded_template_name # guard against templates unavailable on FOSS - ci_template_event(event_name) + event_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_template_event_name(expanded_template_name, :repository_source) + + result << ci_template_event(event_name) end end @@ -86,5 +90,10 @@ namespace :gitlab do 'aggregation' => 'weekly' } end + + def implicit_auto_devops_event(expanded_template_name) + event_name = Gitlab::UsageDataCounters::CiTemplateUniqueCounter.ci_template_event_name(expanded_template_name, :auto_devops_source) + ci_template_event(event_name) + end end end |