From ef66f5c8ada52e66cf44dbfae845968b68bf22ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Wed, 26 Apr 2017 18:54:48 +0200 Subject: [PATCH 1/3] Group static-analysis jobs into a single job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- .gitlab-ci.yml | 45 +++++++++++++++++---------------------------- scripts/lint-doc.sh | 1 - 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index faae30dfc28eb8..44c69226940295 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -268,29 +268,36 @@ spinach mysql 9 10: *spinach-knapsack-mysql SETUP_DB: "false" USE_BUNDLE_INSTALL: "true" -.exec: &exec +.rake-exec: &rake-exec <<: *ruby-static-analysis <<: *dedicated-runner <<: *except-docs stage: test script: - - bundle exec $CI_JOB_NAME + - bundle exec rake $CI_JOB_NAME -rubocop: +static-analysis: <<: *ruby-static-analysis <<: *dedicated-runner <<: *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" -rake haml_lint: *exec -rake scss_lint: *exec -rake config_lint: *exec -rake brakeman: *exec -rake flay: *exec -license_finder: *exec -rake downtime_check: *exec +downtime_check: + <<: *rake-exec + except: + - master + - tags + - /^[\d-]+-stable(-ee)?$/ .db-migrate-reset: &db-migrate-reset stage: test @@ -391,16 +398,6 @@ rake karma: paths: - coverage-javascript/ -docs:check:apilint: - image: "phusion/baseimage" - stage: test - <<: *dedicated-runner - cache: {} - dependencies: [] - before_script: [] - script: - - scripts/lint-doc.sh - docs:check:links: image: "registry.gitlab.com/gitlab-org/gitlab-build-images:nanoc-bootstrap-ruby-2.4-alpine" stage: test @@ -482,14 +479,6 @@ coverage: - coverage/index.html - coverage/assets/ -lint:javascript: - <<: *dedicated-runner - <<: *except-docs - stage: test - before_script: [] - script: - - yarn run eslint - lint:javascript:report: <<: *dedicated-runner <<: *except-docs diff --git a/scripts/lint-doc.sh b/scripts/lint-doc.sh index 62236ed539af61..54c1ef3dfdda58 100755 --- a/scripts/lint-doc.sh +++ b/scripts/lint-doc.sh @@ -21,4 +21,3 @@ fi echo "✔ Linting passed" exit 0 - -- GitLab From 2dce76fa4c4b962be0bfcf3ce78c041886ad16cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Wed, 26 Apr 2017 18:55:12 +0200 Subject: [PATCH 2/3] Shorten and improve some job names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- .gitlab-ci.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 44c69226940295..6d9fdb09b45704 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -305,12 +305,12 @@ downtime_check: script: - bundle exec rake db:migrate:reset -rake pg db:migrate:reset: +db:migrate:reset pg: <<: *db-migrate-reset <<: *use-pg <<: *except-docs -rake mysql db:migrate:reset: +db:migrate:reset mysql: <<: *db-migrate-reset <<: *use-mysql <<: *except-docs @@ -322,12 +322,12 @@ rake mysql db:migrate:reset: - bundle exec rake db:rollback STEP=120 - bundle exec rake db:migrate -rake pg db:rollback: +db:rollback pg: <<: *db-rollback <<: *use-pg <<: *except-docs -rake mysql db:rollback: +db:rollback mysql: <<: *db-rollback <<: *use-mysql <<: *except-docs @@ -349,17 +349,17 @@ rake mysql db:rollback: paths: - log/development.log -rake pg db:seed_fu: +db:seed_fu pg: <<: *db-seed_fu <<: *use-pg <<: *except-docs -rake mysql db:seed_fu: +db:seed_fu mysql: <<: *db-seed_fu <<: *use-mysql <<: *except-docs -rake gitlab:assets:compile: +gitlab:assets:compile: stage: test <<: *dedicated-runner <<: *except-docs @@ -379,7 +379,7 @@ rake gitlab:assets:compile: paths: - webpack-report/ -rake karma: +karma: cache: paths: - vendor/ruby @@ -453,11 +453,11 @@ bundler:audit: - . scripts/prepare_build.sh - bundle exec rake db:migrate -migration pg paths: +migration path pg: <<: *migration-paths <<: *use-pg -migration mysql paths: +migration path mysql: <<: *migration-paths <<: *use-mysql @@ -533,8 +533,8 @@ pages: <<: *dedicated-runner dependencies: - coverage - - rake karma - - rake gitlab:assets:compile + - karma + - gitlab:assets:compile - lint:javascript:report script: - mv public/ .public/ -- GitLab From 640d814f842f527bbe5e5d4ab3b1f78fa8d66ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Fri, 28 Apr 2017 17:31:18 +0200 Subject: [PATCH 3/3] Add scripts/static-analysis to run all the static analysers in one go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- .gitlab-ci.yml | 10 +--------- scripts/static-analysis | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 9 deletions(-) create mode 100755 scripts/static-analysis diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6d9fdb09b45704..c8274644a32c36 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -282,15 +282,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 diff --git a/scripts/static-analysis b/scripts/static-analysis new file mode 100755 index 00000000000000..192d9d4c3ba58f --- /dev/null +++ b/scripts/static-analysis @@ -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 -- GitLab