BigW Consortium Gitlab

static-analysis 1008 Bytes
Newer Older
1 2 3 4 5
#!/usr/bin/env ruby

require ::File.expand_path('../lib/gitlab/popen', __dir__)

tasks = [
6
  %w[bundle exec bundle-audit check --update --ignore CVE-2016-4658 CVE-2017-5029],
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
  %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[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