#!/usr/bin/env ruby require ::File.expand_path('../lib/gitlab/popen', __dir__) tasks = [ %w[bundle exec bundle-audit check --update], %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], %w[scripts/lint-conflicts.sh], %w[bundle exec rake gettext:lint] ] 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