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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-24 00:09:55 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-24 00:09:55 +0300
commit4e175ca905e0c6bdcf83f78fcffd1f5bc8767f82 (patch)
tree7285e810a23238b2eba789419554cd86c9d968f3 /.gitlab
parent3ca896b640def57a58485def308748b2fccbd0bb (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to '.gitlab')
-rw-r--r--.gitlab/ci/package-and-test/main.gitlab-ci.yml218
-rw-r--r--.gitlab/ci/qa-common/main.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/qa-common/rules.gitlab-ci.yml26
-rw-r--r--.gitlab/ci/setup.gitlab-ci.yml1
4 files changed, 218 insertions, 29 deletions
diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
index 2832ac1171c..d9eda474040 100644
--- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml
+++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
@@ -103,6 +103,19 @@ instance-ff-inverse:
# ------------------------------------------
# Jobs with parallel variant
# ------------------------------------------
+
+# ========== instance ===========
+instance:
+ extends:
+ - .parallel
+ - .qa
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ rules:
+ - !reference [.rules:test:feature-flags-set, rules] # always run instance to validate ff change
+ - !reference [.rules:test:qa-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::All/
+
instance-selective:
extends: .qa
variables:
@@ -110,12 +123,29 @@ instance-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
-instance:
+
+instance-selective-parallel:
extends:
- .parallel
- - instance-selective
+ - .qa
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ rules:
+ - !reference [.rules:test:qa-selective-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::All/
+ variables:
+ QA_TESTS: ""
+
+# ========== praefect ===========
+
+praefect:
+ extends:
+ - .parallel
+ - .qa
+ variables:
+ QA_SCENARIO: Test::Integration::Praefect
+ QA_CAN_TEST_PRAEFECT: "true"
rules:
- - !reference [.rules:test:feature-flags-set, rules] # always run instance to validate ff change
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
@@ -127,10 +157,28 @@ praefect-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
-praefect:
+
+praefect-selective-parallel:
+ extends:
+ - .qa
+ - .parallel
+ variables:
+ QA_SCENARIO: Test::Integration::Praefect
+ QA_CAN_TEST_PRAEFECT: "true"
+ rules:
+ - !reference [.rules:test:qa-selective-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::All/
+ variables:
+ QA_TESTS: ""
+
+# ========== relative-url ===========
+
+relative-url:
extends:
+ - .qa
- .parallel
- - praefect-selective
+ variables:
+ QA_SCENARIO: Test::Instance::RelativeUrl
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
@@ -142,10 +190,28 @@ relative-url-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
-relative-url:
+
+relative-url-selective-parallel:
extends:
+ - .qa
- .parallel
- - relative-url-selective
+ variables:
+ QA_SCENARIO: Test::Instance::RelativeUrl
+ rules:
+ - !reference [.rules:test:qa-selective-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::All/
+ variables:
+ QA_TESTS: ""
+
+# ========== decomposition-single-db ===========
+
+decomposition-single-db:
+ extends:
+ - .qa
+ - .parallel
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ GITLAB_QA_OPTS: --omnibus-config decomposition_single_db $EXTRA_GITLAB_QA_OPTS
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
@@ -158,10 +224,30 @@ decomposition-single-db-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
-decomposition-single-db:
+
+decomposition-single-db-selective-parallel:
+ extends:
+ - .qa
+ - .parallel
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ GITLAB_QA_OPTS: --omnibus-config decomposition_single_db $EXTRA_GITLAB_QA_OPTS
+ rules:
+ - !reference [.rules:test:qa-selective-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::All/
+ variables:
+ QA_TESTS: ""
+
+# ========== decomposition-multiple-db ===========
+
+decomposition-multiple-db:
extends:
+ - .qa
- .parallel
- - decomposition-single-db-selective
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ GITLAB_ALLOW_SEPARATE_CI_DATABASE: "true"
+ GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db $EXTRA_GITLAB_QA_OPTS
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
@@ -175,13 +261,33 @@ decomposition-multiple-db-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
-decomposition-multiple-db:
+
+decomposition-multiple-db-selective-parallel:
extends:
+ - .qa
- .parallel
- - decomposition-multiple-db-selective
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ GITLAB_ALLOW_SEPARATE_CI_DATABASE: "true"
+ GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db $EXTRA_GITLAB_QA_OPTS
rules:
- - !reference [.rules:test:qa-parallel, rules]
+ - !reference [.rules:test:qa-selective-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
+ variables:
+ QA_TESTS: ""
+
+# ========== object-storage ===========
+
+object-storage:
+ extends: .qa
+ parallel: 2
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ QA_RSPEC_TAGS: --tag object_storage
+ GITLAB_QA_OPTS: --omnibus-config object_storage $EXTRA_GITLAB_QA_OPTS
+ rules:
+ - !reference [.rules:test:qa-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
object-storage-selective:
extends: .qa
@@ -192,12 +298,30 @@ object-storage-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
-object-storage:
- extends: object-storage-selective
+
+object-storage-selective-parallel:
+ extends: .qa
parallel: 2
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ QA_RSPEC_TAGS: --tag object_storage
+ GITLAB_QA_OPTS: --omnibus-config object_storage $EXTRA_GITLAB_QA_OPTS
rules:
- - !reference [.rules:test:qa-parallel, rules]
+ - !reference [.rules:test:qa-selective-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
+ variables:
+ QA_TESTS: ""
+
+# ========== object-storage-aws ===========
+
+object-storage-aws:
+ extends: object-storage
+ variables:
+ AWS_S3_ACCESS_KEY: $QA_AWS_S3_ACCESS_KEY
+ AWS_S3_BUCKET_NAME: $QA_AWS_S3_BUCKET_NAME
+ AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID
+ AWS_S3_REGION: $QA_AWS_S3_REGION
+ GITLAB_QA_OPTS: --omnibus-config object_storage_aws $EXTRA_GITLAB_QA_OPTS
object-storage-aws-selective:
extends: object-storage-selective
@@ -207,11 +331,27 @@ object-storage-aws-selective:
AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID
AWS_S3_REGION: $QA_AWS_S3_REGION
GITLAB_QA_OPTS: --omnibus-config object_storage_aws $EXTRA_GITLAB_QA_OPTS
-object-storage-aws:
- extends: object-storage-aws-selective
- parallel: 2
- rules:
- - !reference [object-storage, rules]
+
+object-storage-aws-selective-parallel:
+ extends: object-storage-selective-parallel
+ variables:
+ AWS_S3_ACCESS_KEY: $QA_AWS_S3_ACCESS_KEY
+ AWS_S3_BUCKET_NAME: $QA_AWS_S3_BUCKET_NAME
+ AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID
+ AWS_S3_REGION: $QA_AWS_S3_REGION
+ GITLAB_QA_OPTS: --omnibus-config object_storage_aws $EXTRA_GITLAB_QA_OPTS
+
+
+# ========== object-storage-gcs ===========
+
+object-storage-gcs:
+ extends: object-storage
+ variables:
+ GCS_BUCKET_NAME: $QA_GCS_BUCKET_NAME
+ GOOGLE_PROJECT: $QA_GOOGLE_PROJECT
+ GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY
+ GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL
+ GITLAB_QA_OPTS: --omnibus-config object_storage_gcs $EXTRA_GITLAB_QA_OPTS
object-storage-gcs-selective:
extends: object-storage-selective
@@ -221,11 +361,28 @@ object-storage-gcs-selective:
GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY
GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL
GITLAB_QA_OPTS: --omnibus-config object_storage_gcs $EXTRA_GITLAB_QA_OPTS
-object-storage-gcs:
- extends: object-storage-gcs-selective
+
+object-storage-gcs-selective-parallel:
+ extends: object-storage-selective-parallel
+ variables:
+ GCS_BUCKET_NAME: $QA_GCS_BUCKET_NAME
+ GOOGLE_PROJECT: $QA_GOOGLE_PROJECT
+ GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY
+ GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL
+ GITLAB_QA_OPTS: --omnibus-config object_storage_gcs $EXTRA_GITLAB_QA_OPTS
+
+# ========== packages ===========
+
+packages:
+ extends: .qa
parallel: 2
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ QA_RSPEC_TAGS: --tag packages
+ GITLAB_QA_OPTS: --omnibus-config packages $EXTRA_GITLAB_QA_OPTS
rules:
- - !reference [object-storage, rules]
+ - !reference [.rules:test:qa-parallel, rules]
+ - if: $QA_SUITES =~ /Test::Instance::Packages/
packages-selective:
extends: .qa
@@ -236,12 +393,19 @@ packages-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::Packages/
-packages:
- extends: packages-selective
+
+packages-selective-parallel:
+ extends: .qa
parallel: 2
+ variables:
+ QA_SCENARIO: Test::Instance::Image
+ QA_RSPEC_TAGS: --tag packages
+ GITLAB_QA_OPTS: --omnibus-config packages $EXTRA_GITLAB_QA_OPTS
rules:
- - !reference [.rules:test:qa-parallel, rules]
+ - !reference [.rules:test:qa-selective-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::Packages/
+ variables:
+ QA_TESTS: ""
# ------------------------------------------
# Non parallel jobs
@@ -474,7 +638,7 @@ elasticsearch:
- !reference [.rules:test:manual, rules]
registry-object-storage-tls:
- extends: object-storage-aws-selective
+ extends: object-storage-aws-selective-parallel
variables:
QA_SCENARIO: Test::Integration::RegistryTLS
QA_RSPEC_TAGS: ""
diff --git a/.gitlab/ci/qa-common/main.gitlab-ci.yml b/.gitlab/ci/qa-common/main.gitlab-ci.yml
index 44942fe8112..883624a58ff 100644
--- a/.gitlab/ci/qa-common/main.gitlab-ci.yml
+++ b/.gitlab/ci/qa-common/main.gitlab-ci.yml
@@ -166,8 +166,10 @@ stages:
KNAPSACK_DIR: ${CI_PROJECT_DIR}/qa/knapsack
GIT_STRATEGY: none
script:
+ - echo "KNAPSACK_TEST_FILE_PATTERN is ${KNAPSACK_TEST_FILE_PATTERN}"
# when using qa-image, code runs in /home/gitlab/qa folder
- bundle exec rake "knapsack:download[test]"
+ - '[ -n "$QA_TESTS" ] && bundle exec rake "knapsack:create_reports_for_selective"'
- mkdir -p "$KNAPSACK_DIR" && cp knapsack/*.json "${KNAPSACK_DIR}/"
allow_failure: true
artifacts:
diff --git a/.gitlab/ci/qa-common/rules.gitlab-ci.yml b/.gitlab/ci/qa-common/rules.gitlab-ci.yml
index 3580339921d..4d0e0138443 100644
--- a/.gitlab/ci/qa-common/rules.gitlab-ci.yml
+++ b/.gitlab/ci/qa-common/rules.gitlab-ci.yml
@@ -1,5 +1,5 @@
# Specific specs passed
-.specific-specs: &specific-specs
+.specs-specified: &specs-specified
if: $QA_TESTS != ""
# No specific specs passed
@@ -10,6 +10,14 @@
.feature-flags-set: &feature-flags-set
if: $QA_FEATURE_FLAGS =~ /enabled|disabled/
+# Specific specs specified
+.spec-file-specified: &spec-file-specified
+ if: $QA_TESTS =~ /_spec\.rb/
+
+# Specs directory specified
+.spec-directory-specified: &spec-directory-specified
+ if: $QA_TESTS != "" && $QA_TESTS !~ /_spec\.rb/
+
# Manually trigger job on ff changes but with default ff state instead of inverted
.feature-flags-set-manual: &feature-flags-set-manual
<<: *feature-flags-set
@@ -96,11 +104,25 @@
when: never
- <<: *feature-flags-set
when: never
+ - <<: *spec-directory-specified
+ when: never
+
+.rules:test:qa-selective-parallel:
+ rules:
+ # always run parallel with full suite when framework changes present or ff state changed
+ - <<: *qa-run-all-tests
+ when: never
+ - <<: *all-specs
+ when: never
+ - <<: *feature-flags-set
+ when: never
+ - <<: *spec-file-specified
+ when: never
.rules:test:qa-parallel:
rules:
- *qa-run-all-tests
- - <<: *specific-specs
+ - <<: *specs-specified
when: manual
allow_failure: true
variables:
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index 36e2c338748..cf71081a37f 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -171,3 +171,4 @@ e2e-test-pipeline-generate:
expire_in: 1 day
paths:
- '*-pipeline.yml'
+ - "${CI_PROJECT_DIR}/qa_tests_vars.env"