.static-analysis-base: extends: - .default-retry - .default-before_script stage: lint needs: [] variables: SETUP_DB: "false" ENABLE_SPRING: "1" # Disable warnings in browserslist which can break on backports # https://github.com/browserslist/browserslist/blob/a287ec6/node.js#L367-L384 BROWSERSLIST_IGNORE_OLD_DATA: "true" update-static-analysis-cache: extends: - .static-analysis-base - .rubocop-job-cache-push - .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. static-analysis: extends: - .static-analysis-base - .static-analysis-cache - .static-analysis:rules:ee-and-foss parallel: 2 script: - run_timed_command "retry yarn install --frozen-lockfile" - scripts/static-analysis static-analysis as-if-foss: extends: - static-analysis - .static-analysis:rules:as-if-foss - .as-if-foss static-verification-with-database: extends: - .static-analysis-base - .rubocop-job-cache - .static-analysis:rules:ee-and-foss - .use-pg12 script: - bundle exec rake lint:static_verification_with_database variables: SETUP_DB: "true" eslint: extends: - .static-analysis-base - .yarn-cache - .static-analysis:rules:ee needs: [] variables: USE_BUNDLE_INSTALL: "false" script: - run_timed_command "retry yarn install --frozen-lockfile" - run_timed_command "yarn run lint:eslint:all" eslint as-if-foss: extends: - eslint - .frontend:rules:eslint-as-if-foss - .as-if-foss haml-lint foss: extends: - .static-analysis-base - .ruby-cache - .static-analysis:rules:ee-and-foss script: - run_timed_command "bin/rake 'haml_lint[app/views]'" artifacts: expire_in: 31d when: always paths: - tmp/feature_flags/ haml-lint ee: extends: - "haml-lint foss" - .static-analysis:rules:ee script: - run_timed_command "bin/rake 'haml_lint[ee/app/views]'" rubocop: extends: - .static-analysis-base - .rubocop-job-cache - .static-analysis:rules:ee-and-foss script: - run_timed_command "bundle exec rubocop --parallel" qa:testcases: extends: - .static-analysis-base - .rubocop-job-cache - .static-analysis:rules:ee-and-foss script: - run_timed_command "bundle exec rubocop qa/qa/specs/features/**/* --only QA/DuplicateTestcaseLink" feature-flags-usage: extends: - .static-analysis-base - .rubocop-job-cache - .static-analysis:rules:ee-and-foss 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. - run_timed_command "bundle exec rubocop --only Gitlab/MarkUsedFeatureFlags --cache false" artifacts: expire_in: 31d when: always paths: - tmp/feature_flags/