Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci/static-analysis.gitlab-ci.yml')
-rw-r--r--.gitlab/ci/static-analysis.gitlab-ci.yml45
1 files changed, 31 insertions, 14 deletions
diff --git a/.gitlab/ci/static-analysis.gitlab-ci.yml b/.gitlab/ci/static-analysis.gitlab-ci.yml
index b4efd9e49bf..e845e7eb88b 100644
--- a/.gitlab/ci/static-analysis.gitlab-ci.yml
+++ b/.gitlab/ci/static-analysis.gitlab-ci.yml
@@ -19,13 +19,16 @@ update-static-analysis-cache:
- .shared:rules:update-cache
stage: prepare
script:
- - run_timed_command "bundle exec rubocop --parallel" # For the moment we only cache `tmp/rubocop_cache` so we don't need to run all the tasks.
+ # Silence cop offenses for rules with "grace period".
+ # This will notify Slack if offenses were silenced.
+ # For the moment we only cache `tmp/rubocop_cache` so we don't need to run all the tasks.
+ - run_timed_command "bundle exec rake rubocop:check:graceful"
static-analysis:
extends:
- .static-analysis-base
- .static-analysis-cache
- - .static-analysis:rules:ee-and-foss
+ - .static-analysis:rules:static-analysis
parallel: 2
script:
- run_timed_command "retry yarn install --frozen-lockfile"
@@ -34,14 +37,14 @@ static-analysis:
static-analysis as-if-foss:
extends:
- static-analysis
- - .static-analysis:rules:as-if-foss
+ - .static-analysis:rules:static-analysis-as-if-foss
- .as-if-foss
static-verification-with-database:
extends:
- .static-analysis-base
- .rubocop-job-cache
- - .static-analysis:rules:ee-and-foss
+ - .static-analysis:rules:static-verification-with-database
- .use-pg12
script:
- bundle exec rake lint:static_verification_with_database
@@ -91,13 +94,13 @@ eslint as-if-foss:
- .as-if-foss
needs: ['generate-apollo-graphql-schema as-if-foss']
-haml-lint foss:
+haml-lint:
extends:
- .static-analysis-base
- .ruby-cache
- - .static-analysis:rules:ee-and-foss
+ - .static-analysis:rules:haml-lint
script:
- - run_timed_command "bin/rake 'haml_lint[app/views]'"
+ - run_timed_command "bundle exec haml-lint --parallel app/views"
artifacts:
expire_in: 31d
when: always
@@ -106,23 +109,37 @@ haml-lint foss:
haml-lint ee:
extends:
- - "haml-lint foss"
- - .static-analysis:rules:ee
+ - "haml-lint"
+ - .static-analysis:rules:haml-lint-ee
script:
- - run_timed_command "bin/rake 'haml_lint[ee/app/views]'"
+ - run_timed_command "bundle exec haml-lint --parallel ee/app/views"
rubocop:
extends:
- .static-analysis-base
- .rubocop-job-cache
- - .static-analysis:rules:ee-and-foss
+ - .static-analysis:rules:rubocop
+ needs:
+ - job: detect-tests
+ optional: true
script:
- - run_timed_command "bundle exec rubocop --parallel"
+ - |
+ # For non-merge request, or when RUN_ALL_RUBOCOP is 'true', run all RuboCop rules
+ if [ -z "${CI_MERGE_REQUEST_IID}" ] || [ "${RUN_ALL_RUBOCOP}" == "true" ]; then
+ # Silence cop offenses for rules with "grace period".
+ # We won't notify Slack if offenses were silenced to avoid frequent messages.
+ # Job `update-static-analysis-cache` takes care of Slack notifications every 2 hours.
+ unset CI_SLACK_WEBHOOK_URL
+ run_timed_command "bundle exec rake rubocop:check:graceful"
+ else
+ cat ${RSPEC_CHANGED_FILES_PATH} | ruby -e 'puts $stdin.read.split(" ").select { |f| File.exist?(f) }.join(" ")' > tmp/rubocop_target_files.txt
+ run_timed_command "bundle exec rubocop --parallel --force-exclusion $(cat tmp/rubocop_target_files.txt)"
+ fi
qa:metadata-lint:
extends:
- .static-analysis-base
- - .static-analysis:rules:ee-and-foss-qa
+ - .static-analysis:rules:qa:metadata-lint
before_script:
- !reference [.default-before_script, before_script]
- cd qa/
@@ -149,7 +166,7 @@ feature-flags-usage:
extends:
- .static-analysis-base
- .rubocop-job-cache
- - .static-analysis:rules:ee-and-foss
+ - .static-analysis:rules:rubocop
script:
# We need to disable the cache for this cop since it creates files under tmp/feature_flags/*.used,
# the cache would prevent these files from being created.