953 lines
27 KiB
YAML
953 lines
27 KiB
YAML
include:
|
|
- local: .gitlab/ci/rails/shared.gitlab-ci.yml
|
|
|
|
###############################################################
|
|
# EE/FOSS: default refs (MRs, default branch, schedules) jobs #
|
|
setup-test-env:
|
|
extends:
|
|
- .rails-job-base
|
|
- .setup-test-env-cache
|
|
- .rails:rules:setup-test-env
|
|
stage: prepare
|
|
variables:
|
|
SETUP_DB: "false"
|
|
script:
|
|
- echo $CI_MERGE_REQUEST_APPROVED
|
|
- source scripts/gitlab_component_helpers.sh
|
|
- run_timed_command "download_and_extract_gitlab_workhorse_package" || true
|
|
- section_start "setup-test-env" "Setting up testing environment"; scripts/setup-test-env; section_end "setup-test-env";
|
|
- select_gitlab_workhorse_essentials
|
|
- section_start "gitaly-test-build" "Compiling Gitaly binaries"; scripts/gitaly-test-build; section_end "gitaly-test-build"; # Do not use 'bundle exec' here
|
|
artifacts:
|
|
expire_in: 7d
|
|
paths:
|
|
- ${TMP_TEST_FOLDER}/gitaly/_build/bin/
|
|
- ${TMP_TEST_FOLDER}/gitaly/config.toml
|
|
- ${TMP_TEST_FOLDER}/gitaly/gitaly2.config.toml
|
|
- ${TMP_TEST_FOLDER}/gitaly/internal/
|
|
- ${TMP_TEST_FOLDER}/gitaly/Makefile
|
|
- ${TMP_TEST_FOLDER}/gitaly/praefect.config.toml
|
|
- ${TMP_TEST_FOLDER}/gitaly/praefect-db.config.toml
|
|
- ${TMP_TEST_FOLDER}/gitlab-elasticsearch-indexer/bin/gitlab-elasticsearch-indexer
|
|
- ${TMP_TEST_FOLDER}/gitlab-shell/
|
|
- ${TMP_TEST_FOLDER}/gitlab-test-fork/
|
|
- ${TMP_TEST_FOLDER}/gitlab-test-fork.bundle
|
|
- ${TMP_TEST_FOLDER}/gitlab-test/
|
|
- ${TMP_TEST_FOLDER}/gitlab-test.bundle
|
|
- ${TMP_TEST_FOLDER}/repositories/
|
|
- ${TMP_TEST_FOLDER}/second_storage/
|
|
- ${TMP_TEST_GITLAB_WORKHORSE_PATH}/
|
|
when: always
|
|
|
|
update-setup-test-env-cache:
|
|
extends:
|
|
- setup-test-env
|
|
- .setup-test-env-cache-push
|
|
- .shared:rules:update-cache
|
|
artifacts:
|
|
paths: [] # This job's purpose is only to update the cache.
|
|
|
|
update-gitaly-binaries-cache:
|
|
extends:
|
|
- setup-test-env
|
|
- .gitaly-binaries-cache-push
|
|
- .shared:rules:update-gitaly-binaries-cache
|
|
artifacts:
|
|
paths: [] # This job's purpose is only to update the cache.
|
|
|
|
.coverage-base:
|
|
extends:
|
|
- .default-retry
|
|
- .coverage-cache
|
|
before_script:
|
|
- source scripts/utils.sh
|
|
- export BUNDLE_WITHOUT="${BUNDLE_WITHOUT}:default:test:puma:kerberos:metrics:omnibus:ed25519"
|
|
- bundle_install_script
|
|
|
|
rspec migration pg13:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rspec-base-migration
|
|
- .rails:rules:ee-and-foss-migration
|
|
- .rspec-migration-parallel
|
|
|
|
rspec background_migration pg13:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rspec-base-migration
|
|
- .rails:rules:ee-and-foss-background-migration
|
|
- .rspec-background-migration-parallel
|
|
|
|
rspec migration pg13 single-db:
|
|
extends:
|
|
- rspec migration pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec background_migration pg13 single-db:
|
|
extends:
|
|
- rspec background_migration pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec migration pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec migration pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec background_migration pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec background_migration pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec migration pg13 praefect:
|
|
extends:
|
|
- rspec migration pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
rspec background_migration pg13 praefect:
|
|
extends:
|
|
- rspec background_migration pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
rspec unit pg13:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rails:rules:ee-and-foss-unit
|
|
- .rspec-unit-parallel
|
|
|
|
rspec unit pg13 single-db:
|
|
extends:
|
|
- rspec unit pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec unit pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec unit pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec unit pg13 praefect:
|
|
extends:
|
|
- rspec unit pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
rspec integration pg13:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rails:rules:ee-and-foss-integration
|
|
- .rspec-integration-parallel
|
|
|
|
rspec integration pg13 single-db:
|
|
extends:
|
|
- rspec integration pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec integration pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec integration pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec integration pg13 praefect:
|
|
extends:
|
|
- rspec integration pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
rspec system pg13:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rails:rules:ee-and-foss-system
|
|
- .rspec-system-parallel
|
|
variables:
|
|
DEBUG_GITLAB_TRANSACTION_STACK: "true"
|
|
|
|
rspec system pg13 single-db:
|
|
extends:
|
|
- rspec system pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec system pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec system pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec system pg13 praefect:
|
|
extends:
|
|
- rspec system pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
# Dedicated job to test DB library code against PG12.
|
|
# Note that these are already tested against PG12 in the `rspec unit pg12` / `rspec-ee unit pg12` jobs.
|
|
rspec db-library-code pg12:
|
|
extends:
|
|
- .rspec-base-pg12
|
|
- .rails:rules:ee-and-foss-db-library-code
|
|
script:
|
|
- !reference [.base-script, script]
|
|
- rspec_db_library_code
|
|
|
|
rspec fast_spec_helper:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rails:rules:ee-and-foss-fast_spec_helper
|
|
script:
|
|
- fast_spec_helper_specs=$(git grep -l -E '^require.*fast_spec_helper')
|
|
# Load fast_spec_helper as well just in case there are no specs available.
|
|
- bin/rspec --dry-run spec/fast_spec_helper.rb $fast_spec_helper_specs
|
|
|
|
gitlab:setup:
|
|
extends: .db-job-base
|
|
variables:
|
|
SETUP_DB: "false"
|
|
script:
|
|
# Manually clone gitlab-test and only seed this project in
|
|
# db/fixtures/development/04_project.rb thanks to SIZE=1 below
|
|
- git clone https://gitlab.com/gitlab-org/gitlab-test.git
|
|
/home/git/repositories/gitlab-org/gitlab-test.git
|
|
- !reference [.base-script, script]
|
|
- force=yes SIZE=1 FIXTURE_PATH="db/fixtures/development" bundle exec rake gitlab:setup
|
|
artifacts:
|
|
when: on_failure
|
|
expire_in: 1d
|
|
paths:
|
|
- log/*.log
|
|
|
|
rspec:deprecations:
|
|
extends:
|
|
- .default-retry
|
|
- .default-before_script
|
|
- .static-analysis-cache
|
|
- .rails:rules:deprecations
|
|
stage: post-test
|
|
allow_failure: true
|
|
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
|
|
# so we use `dependencies` here.
|
|
dependencies:
|
|
- rspec migration pg13
|
|
- rspec background_migration pg13
|
|
- rspec unit pg13
|
|
- rspec integration pg13
|
|
- rspec system pg13
|
|
- rspec-ee migration pg13
|
|
- rspec-ee background_migration pg13
|
|
- rspec-ee unit pg13
|
|
- rspec-ee integration pg13
|
|
- rspec-ee system pg13
|
|
variables:
|
|
SETUP_DB: "false"
|
|
script:
|
|
- grep -h -R "keyword" deprecations/ | awk '{$1=$1};1' | sort | uniq -c | sort
|
|
- grep -R "keyword" deprecations/ | wc
|
|
- run_timed_command "fail_on_warnings bundle exec rubocop --only Lint/LastKeywordArgument --parallel"
|
|
artifacts:
|
|
expire_in: 31d
|
|
when: always
|
|
paths:
|
|
- deprecations/
|
|
|
|
rspec:coverage:
|
|
extends:
|
|
- .coverage-base
|
|
- .rails:rules:rspec-coverage
|
|
stage: post-test
|
|
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
|
|
# so we use `dependencies` here.
|
|
dependencies:
|
|
- setup-test-env
|
|
# FOSS/EE jobs
|
|
- rspec migration pg13
|
|
- rspec background_migration pg13
|
|
- rspec unit pg13
|
|
- rspec integration pg13
|
|
- rspec system pg13
|
|
# as-if-foss jobs
|
|
- rspec migration pg13-as-if-foss
|
|
- rspec background_migration pg13-as-if-foss
|
|
- rspec unit pg13-as-if-foss
|
|
- rspec integration pg13-as-if-foss
|
|
- rspec system pg13-as-if-foss
|
|
# EE jobs
|
|
- rspec-ee migration pg13
|
|
- rspec-ee background_migration pg13
|
|
- rspec-ee unit pg13
|
|
- rspec-ee integration pg13
|
|
- rspec-ee system pg13
|
|
# Memory jobs
|
|
- memory-on-boot
|
|
script:
|
|
- run_timed_command "bundle exec scripts/merge-simplecov"
|
|
coverage: '/LOC \((\d+\.\d+%)\) covered.$/'
|
|
artifacts:
|
|
name: coverage
|
|
expire_in: 31d
|
|
paths:
|
|
- coverage/index.html
|
|
- coverage/assets/
|
|
- coverage/lcov/
|
|
reports:
|
|
coverage_report:
|
|
coverage_format: cobertura
|
|
path: coverage/coverage.xml
|
|
|
|
rspec:undercoverage:
|
|
extends:
|
|
- .coverage-base
|
|
- .rails:rules:rspec-undercoverage
|
|
stage: post-test
|
|
needs: ["rspec:coverage"]
|
|
script:
|
|
- if [ -n "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA" ]; then
|
|
echo "HEAD is $(git rev-parse HEAD). \$CI_MERGE_REQUEST_TARGET_BRANCH_SHA is ${CI_MERGE_REQUEST_TARGET_BRANCH_SHA}";
|
|
else
|
|
echo "HEAD is $(git rev-parse HEAD). \$CI_MERGE_REQUEST_DIFF_BASE_SHA is ${CI_MERGE_REQUEST_DIFF_BASE_SHA}";
|
|
fi;
|
|
- UNDERCOVERAGE_COMPARE="${CI_MERGE_REQUEST_TARGET_BRANCH_SHA:-$CI_MERGE_REQUEST_DIFF_BASE_SHA}"
|
|
- git diff ${UNDERCOVERAGE_COMPARE} --stat
|
|
- echo "Undercoverage comparing with ${UNDERCOVERAGE_COMPARE}."
|
|
- if [ -f scripts/undercoverage ]; then
|
|
run_timed_command "bundle exec scripts/undercoverage ${UNDERCOVERAGE_COMPARE}";
|
|
fi;
|
|
|
|
rspec:feature-flags:
|
|
extends:
|
|
- .coverage-base
|
|
- .rails:rules:rspec-feature-flags
|
|
stage: post-test
|
|
needs:
|
|
- job: "feature-flags-usage"
|
|
- job: "haml-lint"
|
|
- job: "haml-lint ee"
|
|
optional: true
|
|
script:
|
|
- if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
|
|
run_timed_command "bundle exec scripts/used-feature-flags" || (scripts/slack master-broken "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL}" ci_failing "GitLab Bot" && exit 1);
|
|
else
|
|
run_timed_command "bundle exec scripts/used-feature-flags";
|
|
fi
|
|
|
|
rspec:flaky-tests-report:
|
|
extends:
|
|
- .default-retry
|
|
- .rails:rules:flaky-tests-report
|
|
stage: post-test
|
|
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
|
|
# so we use `dependencies` here.
|
|
dependencies: !reference ["rspec:coverage", "dependencies"]
|
|
variables:
|
|
SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_report.txt
|
|
RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_report.txt
|
|
before_script:
|
|
- source scripts/utils.sh
|
|
- source scripts/rspec_helpers.sh
|
|
script:
|
|
- generate_flaky_tests_reports
|
|
artifacts:
|
|
expire_in: 31d
|
|
paths:
|
|
- rspec/
|
|
|
|
# EE/FOSS: default refs (MRs, default branch, schedules) jobs #
|
|
#######################################################
|
|
|
|
##################################################
|
|
# EE: default refs (MRs, default branch, schedules) jobs #
|
|
rspec-predictive:pipeline-generate:
|
|
extends:
|
|
- .rails:rules:rspec-predictive
|
|
stage: prepare
|
|
needs: ["detect-tests", "retrieve-tests-metadata"]
|
|
script:
|
|
- scripts/generate_rspec_pipeline.rb -t "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}" -k "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}" -f "${RSPEC_MATCHING_TESTS_FOSS_PATH}" -o "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml"
|
|
- scripts/generate_rspec_pipeline.rb -t "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}" -k "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}" -f "${RSPEC_MATCHING_TESTS_EE_PATH}" -o "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml" -p "ee/"
|
|
- echo "Content of ${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml:"
|
|
- cat "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml"
|
|
- echo "\n================================================\n"
|
|
- echo "Content of ${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml:"
|
|
- cat "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml"
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml"
|
|
- "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml"
|
|
|
|
rspec:predictive:trigger:
|
|
extends:
|
|
- .rails:rules:rspec-predictive
|
|
stage: test
|
|
needs:
|
|
- job: "setup-test-env"
|
|
artifacts: false
|
|
- job: "retrieve-tests-metadata"
|
|
artifacts: false
|
|
- job: "compile-test-assets"
|
|
artifacts: false
|
|
- job: "rspec-predictive:pipeline-generate"
|
|
artifacts: true
|
|
variables:
|
|
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
|
|
trigger:
|
|
strategy: depend
|
|
forward:
|
|
yaml_variables: true
|
|
pipeline_variables: true
|
|
include:
|
|
- artifact: "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml"
|
|
job: rspec-predictive:pipeline-generate
|
|
|
|
rspec-ee:predictive:trigger:
|
|
extends: rspec:predictive:trigger
|
|
trigger:
|
|
include:
|
|
- artifact: "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml"
|
|
job: rspec-predictive:pipeline-generate
|
|
|
|
rspec migration pg13-as-if-foss:
|
|
extends:
|
|
- .rspec-base-pg13-as-if-foss
|
|
- .rspec-base-migration
|
|
- .rails:rules:as-if-foss-migration
|
|
- .rspec-migration-parallel
|
|
|
|
rspec background_migration pg13-as-if-foss:
|
|
extends:
|
|
- .rspec-base-pg13-as-if-foss
|
|
- .rspec-base-migration
|
|
- .rails:rules:as-if-foss-background-migration
|
|
- .rspec-background-migration-parallel
|
|
|
|
rspec migration pg13-as-if-foss single-db:
|
|
extends:
|
|
- rspec migration pg13-as-if-foss
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec background_migration pg13-as-if-foss single-db:
|
|
extends:
|
|
- rspec background_migration pg13-as-if-foss
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec migration pg13-as-if-foss single-db-ci-connection:
|
|
extends:
|
|
- rspec migration pg13-as-if-foss
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec background_migration pg13-as-if-foss single-db-ci-connection:
|
|
extends:
|
|
- rspec background_migration pg13-as-if-foss
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec unit pg13-as-if-foss:
|
|
extends:
|
|
- .rspec-base-pg13-as-if-foss
|
|
- .rails:rules:as-if-foss-unit
|
|
- .rspec-unit-parallel
|
|
|
|
rspec unit pg13-as-if-foss single-db:
|
|
extends:
|
|
- rspec unit pg13-as-if-foss
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec unit pg13-as-if-foss single-db-ci-connection:
|
|
extends:
|
|
- rspec unit pg13-as-if-foss
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec integration pg13-as-if-foss:
|
|
extends:
|
|
- .rspec-base-pg13-as-if-foss
|
|
- .rails:rules:as-if-foss-integration
|
|
- .rspec-integration-parallel
|
|
|
|
rspec integration pg13-as-if-foss single-db:
|
|
extends:
|
|
- rspec integration pg13-as-if-foss
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec integration pg13-as-if-foss single-db-ci-connection:
|
|
extends:
|
|
- rspec integration pg13-as-if-foss
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec system pg13-as-if-foss:
|
|
extends:
|
|
- .rspec-base-pg13-as-if-foss
|
|
- .rails:rules:as-if-foss-system
|
|
- .rspec-system-parallel
|
|
|
|
rspec system pg13-as-if-foss single-db:
|
|
extends:
|
|
- rspec system pg13-as-if-foss
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec system pg13-as-if-foss single-db-ci-connection:
|
|
extends:
|
|
- rspec system pg13-as-if-foss
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec-ee migration pg13:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .rspec-base-migration
|
|
- .rails:rules:ee-only-migration
|
|
- .rspec-ee-migration-parallel
|
|
|
|
rspec-ee background_migration pg13:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .rspec-base-migration
|
|
- .rails:rules:ee-only-background-migration
|
|
- .rspec-ee-background-migration-parallel
|
|
|
|
rspec-ee migration pg13 single-db:
|
|
extends:
|
|
- rspec-ee migration pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec-ee background_migration pg13 single-db:
|
|
extends:
|
|
- rspec-ee background_migration pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec-ee migration pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec-ee migration pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec-ee background_migration pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec-ee background_migration pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec-ee migration pg13 praefect:
|
|
extends:
|
|
- rspec migration pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
rspec-ee background_migration pg13 praefect:
|
|
extends:
|
|
- rspec background_migration pg13
|
|
- .praefect-with-db
|
|
- .rails:rules:praefect-with-db
|
|
|
|
rspec-ee unit pg13:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .rails:rules:ee-only-unit
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee unit pg13 es8:
|
|
extends:
|
|
- .rspec-ee-base-pg13-es8
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee unit pg13 single-db:
|
|
extends:
|
|
- rspec-ee unit pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec-ee unit pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec-ee unit pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec-ee integration pg13:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .rails:rules:ee-only-integration
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee integration pg13 es8:
|
|
extends:
|
|
- .rspec-ee-base-pg13-es8
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee integration pg13 single-db:
|
|
extends:
|
|
- rspec-ee integration pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec-ee integration pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec-ee integration pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
|
|
rspec-ee system pg13:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .rails:rules:ee-only-system
|
|
- .rspec-ee-system-parallel
|
|
|
|
rspec-ee system pg13 es8:
|
|
extends:
|
|
- .rspec-ee-base-pg13-es8
|
|
- .rspec-ee-system-parallel
|
|
|
|
rspec-ee system pg13 single-db:
|
|
extends:
|
|
- rspec-ee system pg13
|
|
- .single-db-rspec
|
|
- .rails:rules:single-db
|
|
|
|
rspec-ee system pg13 single-db-ci-connection:
|
|
extends:
|
|
- rspec-ee system pg13
|
|
- .single-db-ci-connection-rspec
|
|
- .rails:rules:single-db-ci-connection
|
|
# EE: default refs (MRs, default branch, schedules) jobs #
|
|
##################################################
|
|
|
|
##########################################
|
|
# EE/FOSS: default branch nightly scheduled jobs #
|
|
|
|
# PG12
|
|
rspec migration pg12:
|
|
extends:
|
|
- .rspec-base-pg12
|
|
- .rspec-base-migration
|
|
- .rails:rules:rspec-on-pg12
|
|
- .rspec-migration-parallel
|
|
|
|
rspec background_migration pg12:
|
|
extends:
|
|
- .rspec-base-pg12
|
|
- .rspec-base-migration
|
|
- .rails:rules:rspec-on-pg12
|
|
- .rspec-background-migration-parallel
|
|
|
|
rspec unit pg12:
|
|
extends:
|
|
- .rspec-base-pg12
|
|
- .rails:rules:rspec-on-pg12
|
|
- .rspec-unit-parallel
|
|
|
|
rspec integration pg12:
|
|
extends:
|
|
- .rspec-base-pg12
|
|
- .rails:rules:rspec-on-pg12
|
|
- .rspec-integration-parallel
|
|
|
|
rspec system pg12:
|
|
extends:
|
|
- .rspec-base-pg12
|
|
- .rails:rules:rspec-on-pg12
|
|
- .rspec-system-parallel
|
|
|
|
# PG14
|
|
rspec migration pg14:
|
|
extends:
|
|
- .rspec-base-pg14
|
|
- .rspec-base-migration
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage
|
|
- .rspec-migration-parallel
|
|
|
|
rspec background_migration pg14:
|
|
extends:
|
|
- .rspec-base-pg14
|
|
- .rspec-base-migration
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage
|
|
- .rspec-background-migration-parallel
|
|
|
|
rspec unit pg14:
|
|
extends:
|
|
- .rspec-base-pg14
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage
|
|
- .rspec-unit-parallel
|
|
|
|
rspec integration pg14:
|
|
extends:
|
|
- .rspec-base-pg14
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage
|
|
- .rspec-integration-parallel
|
|
|
|
rspec system pg14:
|
|
extends:
|
|
- .rspec-base-pg14
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage
|
|
- .rspec-system-parallel
|
|
# EE/FOSS: default branch nightly scheduled jobs #
|
|
##########################################
|
|
|
|
#####################################
|
|
# EE: default branch nightly scheduled jobs #
|
|
|
|
# PG12
|
|
rspec-ee migration pg12:
|
|
extends:
|
|
- .rspec-ee-base-pg12
|
|
- .rspec-base-migration
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-migration-parallel
|
|
|
|
rspec-ee background_migration pg12:
|
|
extends:
|
|
- .rspec-ee-base-pg12
|
|
- .rspec-base-migration
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-background-migration-parallel
|
|
|
|
rspec-ee unit pg12:
|
|
extends:
|
|
- .rspec-ee-base-pg12
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee integration pg12:
|
|
extends:
|
|
- .rspec-ee-base-pg12
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee system pg12:
|
|
extends:
|
|
- .rspec-ee-base-pg12
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-system-parallel
|
|
|
|
# PG13
|
|
rspec-ee unit pg13 opensearch1:
|
|
extends:
|
|
- .rspec-ee-base-pg13-opensearch1
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee unit pg13 opensearch2:
|
|
extends:
|
|
- .rspec-ee-base-pg13-opensearch2
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee integration pg13 opensearch1:
|
|
extends:
|
|
- .rspec-ee-base-pg13-opensearch1
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee integration pg13 opensearch2:
|
|
extends:
|
|
- .rspec-ee-base-pg13-opensearch2
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee system pg13 opensearch1:
|
|
extends:
|
|
- .rspec-ee-base-pg13-opensearch1
|
|
- .rspec-ee-system-parallel
|
|
|
|
rspec-ee system pg13 opensearch2:
|
|
extends:
|
|
- .rspec-ee-base-pg13-opensearch2
|
|
- .rspec-ee-system-parallel
|
|
|
|
# PG14
|
|
rspec-ee unit pg14 opensearch1:
|
|
extends:
|
|
- .rspec-ee-base-pg14-opensearch1
|
|
- .rspec-ee-unit-parallel
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
|
|
rspec-ee unit pg14 opensearch2:
|
|
extends:
|
|
- .rspec-ee-base-pg14-opensearch2
|
|
- .rspec-ee-unit-parallel
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
|
|
rspec-ee integration pg14 opensearch1:
|
|
extends:
|
|
- .rspec-ee-base-pg14-opensearch1
|
|
- .rspec-ee-integration-parallel
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
|
|
rspec-ee integration pg14 opensearch2:
|
|
extends:
|
|
- .rspec-ee-base-pg14-opensearch2
|
|
- .rspec-ee-integration-parallel
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
|
|
rspec-ee system pg14 opensearch1:
|
|
extends:
|
|
- .rspec-ee-base-pg14-opensearch1
|
|
- .rspec-ee-system-parallel
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
|
|
rspec-ee system pg14 opensearch2:
|
|
extends:
|
|
- .rspec-ee-base-pg14-opensearch2
|
|
- .rspec-ee-system-parallel
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
|
|
rspec-ee migration pg14:
|
|
extends:
|
|
- .rspec-ee-base-pg14
|
|
- .rspec-base-migration
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-migration-parallel
|
|
|
|
rspec-ee background_migration pg14:
|
|
extends:
|
|
- .rspec-ee-base-pg14
|
|
- .rspec-base-migration
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-background-migration-parallel
|
|
|
|
rspec-ee unit pg14:
|
|
extends:
|
|
- .rspec-ee-base-pg14
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee unit pg14 es8:
|
|
extends:
|
|
- .rspec-ee-base-pg14-es8
|
|
- .rspec-ee-unit-parallel
|
|
|
|
rspec-ee integration pg14:
|
|
extends:
|
|
- .rspec-ee-base-pg14
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee integration pg14 es8:
|
|
extends:
|
|
- .rspec-ee-base-pg14-es8
|
|
- .rspec-ee-integration-parallel
|
|
|
|
rspec-ee system pg14:
|
|
extends:
|
|
- .rspec-ee-base-pg14
|
|
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
|
|
- .rspec-ee-system-parallel
|
|
|
|
rspec-ee system pg14 es8:
|
|
extends:
|
|
- .rspec-ee-base-pg14-es8
|
|
- .rspec-ee-system-parallel
|
|
# EE: default branch nightly scheduled jobs #
|
|
#####################################
|
|
|
|
##################################################
|
|
# EE: Canonical MR pipelines
|
|
.rspec-fail-fast:
|
|
extends:
|
|
- .rails:rules:rspec fail-fast
|
|
stage: test
|
|
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"]
|
|
script:
|
|
- !reference [.base-script, script]
|
|
- rspec_fail_fast "${MATCHING_TESTS_PATH}" "--tag ~quarantine --tag ~zoekt"
|
|
|
|
rspec fail-fast:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .rspec-fail-fast # extends from .rspec-fail-fast last to override script from .rspec-base-pg13
|
|
variables:
|
|
MATCHING_TESTS_PATH: "${RSPEC_MATCHING_TESTS_FOSS_PATH}"
|
|
|
|
rspec-ee fail-fast:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .rspec-fail-fast # extends from .rspec-fail-fast last to override script from .rspec-ee-base-pg13
|
|
variables:
|
|
MATCHING_TESTS_PATH: "${RSPEC_MATCHING_TESTS_EE_PATH}"
|
|
|
|
rspec-foss-impact:pipeline-generate:
|
|
extends:
|
|
- .rails:rules:rspec-foss-impact
|
|
stage: prepare
|
|
needs: ["detect-tests", "retrieve-tests-metadata"]
|
|
script:
|
|
- scripts/generate_rspec_pipeline.rb -f "${RSPEC_MATCHING_TESTS_FOSS_PATH}" -t "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}" -k "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}"
|
|
- cat "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}.yml"
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}.yml"
|
|
|
|
rspec-foss-impact:trigger:
|
|
extends:
|
|
- .rails:rules:rspec-foss-impact
|
|
stage: test
|
|
needs:
|
|
- job: "setup-test-env"
|
|
artifacts: false
|
|
- job: "retrieve-tests-metadata"
|
|
artifacts: false
|
|
- job: "compile-test-assets as-if-foss"
|
|
artifacts: false
|
|
- job: "rspec-foss-impact:pipeline-generate"
|
|
artifacts: true
|
|
variables:
|
|
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
|
|
trigger:
|
|
strategy: depend
|
|
forward:
|
|
yaml_variables: true
|
|
pipeline_variables: true
|
|
include:
|
|
- artifact: "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}.yml"
|
|
job: rspec-foss-impact:pipeline-generate
|
|
|
|
fail-pipeline-early:
|
|
extends:
|
|
- .rails:rules:fail-pipeline-early
|
|
stage: post-test
|
|
needs:
|
|
- job: rspec fail-fast
|
|
artifacts: false
|
|
variables:
|
|
GIT_DEPTH: 1
|
|
before_script:
|
|
- source scripts/utils.sh
|
|
- install_gitlab_gem
|
|
script:
|
|
- fail_pipeline_early
|
|
|
|
.base-rspec-pg13-rerun-previous-failed-tests:
|
|
extends:
|
|
- .rails:rules:rerun-previous-failed-tests
|
|
stage: test
|
|
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-previous-failed-tests"]
|
|
script:
|
|
- !reference [.base-script, script]
|
|
- rspec_rerun_previous_failed_tests "${PREVIOUS_FAILED_TESTS_FILE}"
|
|
|
|
rspec rspec-pg13-rerun-previous-failed-tests:
|
|
extends:
|
|
- .rspec-base-pg13
|
|
- .base-rspec-pg13-rerun-previous-failed-tests
|
|
variables:
|
|
PREVIOUS_FAILED_TESTS_FILE: tmp/previous_failed_tests/rspec_failed_tests.txt
|
|
|
|
rspec rspec-ee-pg13-rerun-previous-failed-tests:
|
|
extends:
|
|
- .rspec-ee-base-pg13
|
|
- .base-rspec-pg13-rerun-previous-failed-tests
|
|
variables:
|
|
PREVIOUS_FAILED_TESTS_FILE: tmp/previous_failed_tests/rspec_ee_failed_files.txt
|
|
# EE: Canonical MR pipelines
|
|
##################################################
|