2021-02-05 12:09:31 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-07-22 22:06:17 +00:00
|
|
|
unless Rails.env.production?
|
|
|
|
namespace :lint do
|
2017-12-25 10:20:50 +00:00
|
|
|
task :static_verification_env do
|
|
|
|
ENV['STATIC_VERIFICATION'] = 'true'
|
|
|
|
end
|
|
|
|
|
2020-01-23 06:08:32 +00:00
|
|
|
desc "GitLab | Lint | Static verification"
|
2017-12-25 10:20:50 +00:00
|
|
|
task static_verification: %w[
|
|
|
|
lint:static_verification_env
|
|
|
|
dev:load
|
|
|
|
] do
|
|
|
|
Gitlab::Utils::Override.verify!
|
2021-10-11 03:11:46 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
desc "GitLab | Lint | Static verification with database"
|
|
|
|
task static_verification_with_database: %w[
|
|
|
|
lint:static_verification_env
|
|
|
|
dev:load
|
|
|
|
] do
|
2021-09-21 09:12:21 +00:00
|
|
|
Gitlab::Utils::DelegatorOverride.verify!
|
2017-12-25 10:20:50 +00:00
|
|
|
end
|
|
|
|
|
2020-01-23 06:08:32 +00:00
|
|
|
desc "GitLab | Lint | Lint JavaScript files using ESLint"
|
2016-07-22 22:06:17 +00:00
|
|
|
task :javascript do
|
|
|
|
Rake::Task['eslint'].invoke
|
|
|
|
end
|
2018-01-26 14:23:46 +00:00
|
|
|
|
2020-01-23 06:08:32 +00:00
|
|
|
desc "GitLab | Lint | Lint HAML files"
|
2018-06-19 17:13:11 +00:00
|
|
|
task :haml do
|
2019-03-13 13:42:43 +00:00
|
|
|
Rake::Task['haml_lint'].invoke
|
|
|
|
rescue RuntimeError # The haml_lint tasks raise a RuntimeError
|
|
|
|
exit(1)
|
2018-06-19 17:13:11 +00:00
|
|
|
end
|
|
|
|
|
2020-01-23 06:08:32 +00:00
|
|
|
desc "GitLab | Lint | Run several lint checks"
|
2018-01-26 14:23:46 +00:00
|
|
|
task :all do
|
|
|
|
status = 0
|
|
|
|
|
2019-09-19 11:50:12 +00:00
|
|
|
tasks = %w[
|
2018-01-26 14:23:46 +00:00
|
|
|
config_lint
|
2018-06-19 17:13:11 +00:00
|
|
|
lint:haml
|
2018-01-26 14:23:46 +00:00
|
|
|
gettext:lint
|
|
|
|
lint:static_verification
|
2020-01-22 12:08:40 +00:00
|
|
|
gitlab:sidekiq:all_queues_yml:check
|
2019-09-19 11:50:12 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
if Gitlab.ee?
|
2020-01-24 18:09:00 +00:00
|
|
|
# These tasks will fail on FOSS installations
|
|
|
|
# (e.g. gitlab-org/gitlab-foss) since they test against a single
|
|
|
|
# file that is generated by an EE installation, which can
|
|
|
|
# contain values that a FOSS installation won't find. To work
|
|
|
|
# around this we will only enable this task on EE installations.
|
2019-09-19 11:50:12 +00:00
|
|
|
tasks << 'gettext:updated_check'
|
2020-01-24 18:09:00 +00:00
|
|
|
tasks << 'gitlab:sidekiq:sidekiq_queues_yml:check'
|
2019-09-19 11:50:12 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
tasks.each do |task|
|
2018-02-12 17:34:07 +00:00
|
|
|
pid = Process.fork do
|
2019-05-17 09:34:40 +00:00
|
|
|
puts "*** Running rake task: #{task} ***"
|
|
|
|
|
|
|
|
Rake::Task[task].invoke
|
|
|
|
rescue SystemExit => ex
|
|
|
|
warn "!!! Rake task #{task} exited:"
|
|
|
|
raise ex
|
|
|
|
rescue StandardError, ScriptError => ex
|
|
|
|
warn "!!! Rake task #{task} raised #{ex.class}:"
|
|
|
|
raise ex
|
2018-01-26 14:23:46 +00:00
|
|
|
end
|
2018-02-12 17:34:07 +00:00
|
|
|
|
|
|
|
Process.waitpid(pid)
|
|
|
|
status += $?.exitstatus
|
2018-01-26 14:23:46 +00:00
|
|
|
end
|
|
|
|
|
2018-02-12 17:34:07 +00:00
|
|
|
exit(status)
|
2018-01-26 14:23:46 +00:00
|
|
|
end
|
2016-07-22 22:06:17 +00:00
|
|
|
end
|
|
|
|
end
|