Add scripts/static-analysis to run all the static analysers in one go

Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
Rémy Coutable 2017-04-28 17:31:18 +02:00 committed by Robert Speicher
parent f2fc716c4f
commit 9b3f728cca
2 changed files with 41 additions and 9 deletions

View File

@ -267,15 +267,7 @@ static-analysis:
<<: *except-docs
stage: test
script:
- bundle exec rake config_lint
- bundle exec rake flay
- bundle exec rake haml_lint
- bundle exec rake scss_lint
- bundle exec rake brakeman
- bundle exec license_finder
- scripts/lint-doc.sh
- yarn run eslint
- bundle exec "rubocop --require rubocop-rspec"
- scripts/static-analysis
downtime_check:
<<: *rake-exec

40
scripts/static-analysis Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/env ruby
require ::File.expand_path('../lib/gitlab/popen', __dir__)
tasks = [
%w[bundle exec rake config_lint],
%w[bundle exec rake flay],
%w[bundle exec rake haml_lint],
%w[bundle exec rake scss_lint],
%w[bundle exec rake brakeman],
%w[bundle exec license_finder],
%w[scripts/lint-doc.sh],
%w[yarn run eslint],
%w[bundle exec rubocop --require rubocop-rspec]
]
failed_tasks = tasks.reduce({}) do |failures, task|
output, status = Gitlab::Popen.popen(task)
puts "Running: #{task.join(' ')}"
puts output
failures[task.join(' ')] = output unless status.zero?
failures
end
if failed_tasks.empty?
puts 'All static analyses passed successfully.'
else
puts "\n===================================================\n\n"
puts "Some static analyses failed:"
failed_tasks.each do |failed_task, output|
puts "\n**** #{failed_task} failed with the following error:\n\n"
puts output
end
exit 1
end