include: - local: .gitlab/ci/qa-common/main.gitlab-ci.yml - local: .gitlab/ci/qa-common/rules.gitlab-ci.yml - local: .gitlab/ci/qa-common/variables.gitlab-ci.yml - local: .gitlab/ci/qa-common/omnibus.gitlab-ci.yml workflow: rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $SCHEDULE_TYPE == "nightly"' .ce: variables: RELEASE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ce:${RELEASE_IMAGE_TAG}" .ee: variables: RELEASE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ee:${RELEASE_IMAGE_TAG}" # ========================================== # Prepare stage # ========================================== download-knapsack-report: extends: - .download-knapsack-report - .rules:download-knapsack # ========================================== # Test stage # ========================================== # ------------------------------------------ # Network limiting jobs # ------------------------------------------ airgapped: extends: - .qa - .ee - .parallel variables: QA_SCENARIO: "Test::Instance::Airgapped" QA_RSPEC_TAGS: "--tag '~github' --tag '~external_api_calls' --tag '~skip_live_env'" instance-image-slow-network: extends: - .qa - .ee - .parallel variables: QA_SIMULATE_SLOW_CONNECTION: "true" # ------------------------------------------ # N+1 jobs # ------------------------------------------ nplus1-instance-image: extends: - .qa - .ee - .parallel variables: CACHE_NAMESPACE_NAME: "false" GITLAB_QA_OPTS: "--enable-feature gitaly_enforce_requests_limits" # ------------------------------------------ # Elasticsearch compatibility jobs # ------------------------------------------ integration-elasticsearch-compatibility-version-7: extends: - .qa - .ee variables: ELASTIC_VERSION: "7.17.0" QA_SCENARIO: "Test::Integration::Elasticsearch" integration-elasticsearch-compatibility-version-8: extends: - .qa - .ee variables: ELASTIC_VERSION: "8.11.4" QA_SCENARIO: "Test::Integration::Elasticsearch" # ------------------------------------------ # Opensearch compatibility jobs # ------------------------------------------ integration-opensearch-compatibility-version-1: extends: - .qa - .ee variables: OPENSEARCH_VERSION: "1.3.3" QA_SCENARIO: "Test::Integration::Opensearch" integration-opensearch-compatibility-version-2: extends: - .qa - .ee variables: OPENSEARCH_VERSION: "2.0.1" QA_SCENARIO: "Test::Integration::Opensearch" # ------------------------------------------ # Relative url # ------------------------------------------ relative-url: extends: - .qa - .ee - .parallel variables: QA_SCENARIO: Test::Instance::RelativeUrl # ------------------------------------------ # Registry with CDN # ------------------------------------------ registry-with-cdn: extends: - .qa - .ee variables: QA_SCENARIO: Test::Integration::RegistryWithCDN GCS_CDN_BUCKET_NAME: $QA_GCS_CDN_BUCKET_NAME GOOGLE_CDN_LB: $QA_GOOGLE_CDN_LB GOOGLE_CDN_JSON_KEY: $QA_GOOGLE_CDN_JSON_KEY GOOGLE_CDN_SIGNURL_KEY: $QA_GOOGLE_CDN_SIGNURL_KEY GOOGLE_CDN_SIGNURL_KEY_NAME: $QA_GOOGLE_CDN_SIGNURL_KEY_NAME # ------------------------------------------ # Object Storage with MiniO # ------------------------------------------ object-storage: extends: - .qa - .ee variables: QA_SCENARIO: Test::Instance::Image QA_RSPEC_TAGS: --tag object_storage GITLAB_QA_OPTS: --omnibus-config object_storage # ------------------------------------------ # Object Storage with 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 # ------------------------------------------ # Object Storage with 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 # ------------------------------------------ # Decomposition jobs # ------------------------------------------ decomposition-single-db: extends: - .qa - .ee - .parallel variables: QA_SCENARIO: Test::Instance::Image GITLAB_QA_OPTS: --omnibus-config decomposition_single_db decomposition-multiple-db: extends: - .qa - .ee - .parallel variables: QA_SCENARIO: Test::Instance::Image GITLAB_ALLOW_SEPARATE_CI_DATABASE: "true" GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db gitlab-pages: extends: - .qa - .ee variables: QA_SCENARIO: Test::Integration::GitlabPages rules: - !reference [.rules:test:qa, rules] - if: $QA_SUITES =~ /Test::Instance::GitlabPages/ - !reference [.rules:test:manual, rules] # ========================================== # Post test stage # ========================================== e2e-test-report: extends: .rules:report:allure-report variables: ALLURE_RESULTS_GLOB: "gitlab-qa-run-*/**/allure-results" upload-knapsack-report: extends: - .upload-knapsack-report export-test-metrics: extends: - .export-test-metrics generate-test-session: extends: - .generate-test-session notify-slack: extends: - .notify-slack