debian-mirror-gitlab/.gitlab/ci/static-analysis.gitlab-ci.yml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

155 lines
4.2 KiB
YAML
Raw Normal View History

2021-11-11 11:23:49 +05:30
.static-analysis-base:
extends:
- .default-retry
- .default-before_script
2021-12-11 22:18:48 +05:30
stage: lint
2021-11-11 11:23:49 +05:30
needs: []
variables:
SETUP_DB: "false"
ENABLE_SPRING: "1"
2022-07-16 23:28:13 +05:30
SKIP_LOG_INITIALIZER_CONNECTIONS: "1"
2021-11-11 11:23:49 +05:30
# 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"
2022-01-26 12:08:38 +05:30
GRAPHQL_SCHEMA_APOLLO_FILE: "tmp/tests/graphql/gitlab_schema_apollo.graphql"
2021-11-11 11:23:49 +05:30
update-static-analysis-cache:
extends:
- .static-analysis-base
2021-12-11 22:18:48 +05:30
- .rubocop-job-cache-push
2021-11-11 11:23:49 +05:30
- .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
2021-12-11 22:18:48 +05:30
- .static-analysis-cache
2021-11-11 11:23:49 +05:30
- .static-analysis:rules:ee-and-foss
2021-12-11 22:18:48 +05:30
parallel: 2
2021-11-11 11:23:49 +05:30
script:
- run_timed_command "retry yarn install --frozen-lockfile"
- scripts/static-analysis
2021-12-11 22:18:48 +05:30
static-analysis as-if-foss:
extends:
- static-analysis
- .static-analysis:rules:as-if-foss
- .as-if-foss
static-verification-with-database:
2021-11-18 22:05:49 +05:30
extends:
- .static-analysis-base
2021-12-11 22:18:48 +05:30
- .rubocop-job-cache
2021-11-18 22:05:49 +05:30
- .static-analysis:rules:ee-and-foss
- .use-pg12
script:
- bundle exec rake lint:static_verification_with_database
variables:
SETUP_DB: "true"
2022-01-26 12:08:38 +05:30
generate-apollo-graphl-schema:
extends:
- .static-analysis-base
- .frontend:rules:default-frontend-jobs
image:
name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:apollo
entrypoint: [""]
needs: ['graphql-schema-dump']
variables:
USE_BUNDLE_INSTALL: "false"
script:
- apollo client:download-schema --config=config/apollo.config.js ${GRAPHQL_SCHEMA_APOLLO_FILE}
artifacts:
name: graphql-schema-apollo
paths:
- "${GRAPHQL_SCHEMA_APOLLO_FILE}"
2021-12-11 22:18:48 +05:30
eslint:
2021-11-11 11:23:49 +05:30
extends:
2021-12-11 22:18:48 +05:30
- .static-analysis-base
- .yarn-cache
2022-01-26 12:08:38 +05:30
- .frontend:rules:default-frontend-jobs
needs: ['generate-apollo-graphl-schema']
2021-12-11 22:18:48 +05:30
variables:
USE_BUNDLE_INSTALL: "false"
script:
- run_timed_command "retry yarn install --frozen-lockfile"
2022-07-16 23:28:13 +05:30
- run_timed_command "yarn run lint:eslint:all"
2021-12-11 22:18:48 +05:30
eslint as-if-foss:
extends:
- eslint
- .frontend:rules:eslint-as-if-foss
2021-11-11 11:23:49 +05:30
- .as-if-foss
2021-12-11 22:18:48 +05:30
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"
2022-07-16 23:28:13 +05:30
qa:metadata-lint:
2021-12-11 22:18:48 +05:30
extends:
- .static-analysis-base
2022-06-21 17:19:12 +05:30
- .static-analysis:rules:ee-and-foss-qa
before_script:
- !reference [.default-before_script, before_script]
- cd qa/
- bundle_install_script
2021-12-11 22:18:48 +05:30
script:
2022-06-21 17:19:12 +05:30
- run_timed_command "bundle exec bin/qa Test::Instance::All http://localhost:3000 --test-metadata-only"
- cd ..
- run_timed_command "./scripts/qa/testcases-check qa/tmp/test-metadata.json"
2022-07-16 23:28:13 +05:30
- run_timed_command "./scripts/qa/quarantine-types-check qa/tmp/test-metadata.json"
2022-06-21 17:19:12 +05:30
variables:
USE_BUNDLE_INSTALL: "false"
SETUP_DB: "false"
QA_EXPORT_TEST_METRICS: "false"
# 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"
artifacts:
expire_in: 31d
when: always
paths:
- qa/tmp/
2021-12-11 22:18:48 +05:30
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/