mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-07-23 00:47:51 +00:00
45 lines
1.8 KiB
Ruby
45 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'gitlab-dangerfiles'
|
|
|
|
# Version check for gitlab-dangerfiles gem to prevent cryptic error messages
|
|
begin
|
|
gem_version = Gem::Specification.find_by_name('gitlab-dangerfiles').version
|
|
|
|
unless Gem::Requirement.new('>= 4.0.0').satisfied_by?(gem_version)
|
|
puts "\n❌ ERROR: Incompatible gitlab-dangerfiles version detected!"
|
|
puts "Found version: #{gem_version}"
|
|
puts 'Required version: >= 4.0.0 (preferably ~> 4.9.0)'
|
|
puts "\n🔧 To fix this issue:"
|
|
puts '1. Run: bundle install'
|
|
puts '2. Or run: gem update gitlab-dangerfiles'
|
|
puts '3. Or clear gem cache: gem cleanup gitlab-dangerfiles'
|
|
puts "\n💡 This prevents the cryptic 'doesn't contain valid danger plugins' error."
|
|
puts ' when old gitlab-dangerfiles versions are cached.'
|
|
exit 1
|
|
end
|
|
rescue StandardError => e
|
|
puts "\n⚠️ Warning: Could not verify gitlab-dangerfiles version: #{e.message}"
|
|
puts 'Proceeding anyway, but if you see "doesn\'t contain valid danger plugins",'
|
|
puts 'try: bundle install or gem update gitlab-dangerfiles'
|
|
end
|
|
|
|
def ee?
|
|
# Support former project name for `dev` and support local Danger run
|
|
%w[gitlab gitlab-ee].include?(ENV['CI_PROJECT_NAME']) ||
|
|
Dir.exist?(File.expand_path('ee', __dir__))
|
|
end
|
|
|
|
project_name = ee? ? 'gitlab' : 'gitlab-foss'
|
|
|
|
Gitlab::Dangerfiles.for_project(self, project_name) do |gitlab_dangerfiles|
|
|
gitlab_dangerfiles.import_plugins
|
|
gitlab_dangerfiles.config.ci_only_rules = ProjectHelper::CI_ONLY_RULES
|
|
gitlab_dangerfiles.config.files_to_category = ProjectHelper::CATEGORIES
|
|
gitlab_dangerfiles.config.excluded_required_codeowners_sections_for_roulette.push('Database')
|
|
gitlab_dangerfiles.config.included_optional_codeowners_sections_for_roulette.push(
|
|
'Backend Static Code Analysis'
|
|
)
|
|
gitlab_dangerfiles.import_dangerfiles(except: %w[simple_roulette])
|
|
end
|