2022-10-11 01:57:18 +05:30
# E2E tests pipeline loaded dynamically by script: scripts/generate-e2e-pipeline
2023-04-23 21:23:45 +05:30
# For adding new tests, refer to: doc/development/testing_guide/end_to_end/package_and_test_pipeline.md
2022-10-11 01:57:18 +05:30
2022-11-25 23:54:43 +05:30
default :
interruptible : true
2022-10-11 01:57:18 +05:30
include :
- local : .gitlab/ci/package-and-test/rules.gitlab-ci.yml
- local : .gitlab/ci/package-and-test/variables.gitlab-ci.yml
- project : gitlab-org/quality/pipeline-common
2023-05-27 22:25:52 +05:30
ref : 2.2 .0
2022-10-11 01:57:18 +05:30
file :
- /ci/base.gitlab-ci.yml
- /ci/allure-report.yml
- /ci/knapsack-report.yml
stages :
- test
- report
- notify
# ==========================================
# Templates
# ==========================================
.parallel :
parallel : 5
variables :
QA_KNAPSACK_REPORT_PATH : $CI_PROJECT_DIR/qa/knapsack
.ruby-image :
2023-01-13 00:05:48 +05:30
# Because this pipeline template can be included directly in other projects,
# image path and registry needs to be defined explicitly
2022-10-11 01:57:18 +05:30
image : ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3
2022-11-25 23:54:43 +05:30
.qa-install :
variables :
BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES : "true"
BUNDLE_SILENCE_ROOT_WARNING : "true"
2022-10-11 01:57:18 +05:30
extends :
- .gitlab-qa-install
.update-script :
script :
2023-05-27 22:25:52 +05:30
- !reference [.bundle-prefix]
- export QA_COMMAND="$BUNDLE_PREFIX gitlab-qa Test::Omnibus::UpdateFromPrevious $RELEASE $GITLAB_SEMVER_VERSION $UPDATE_TYPE -- $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"
2022-10-11 01:57:18 +05:30
- echo "Running - '$QA_COMMAND'"
- eval "$QA_COMMAND"
.qa :
extends :
- .qa-base
2022-11-25 23:54:43 +05:30
- .qa-install
2022-10-11 01:57:18 +05:30
- .gitlab-qa-report
stage : test
tags :
- e2e
needs :
2022-11-25 23:54:43 +05:30
- job : trigger-omnibus
optional : true
- job : download-knapsack-report
artifacts : true
2023-04-23 21:23:45 +05:30
optional : true
2023-05-27 22:25:52 +05:30
- job : check-release-set
2022-10-11 01:57:18 +05:30
variables :
QA_GENERATE_ALLURE_REPORT : "true"
QA_CAN_TEST_PRAEFECT : "false"
QA_INTERCEPT_REQUESTS : "true"
2023-05-27 22:25:52 +05:30
GITLAB_LICENSE_MODE : test
GITLAB_QA_ADMIN_ACCESS_TOKEN : $QA_ADMIN_ACCESS_TOKEN
# todo: remove in 16.1 milestone when not needed for backwards compatibility anymore
2022-10-11 01:57:18 +05:30
EE_LICENSE : $QA_EE_LICENSE
GITHUB_ACCESS_TOKEN : $QA_GITHUB_ACCESS_TOKEN
# ==========================================
# Prepare stage
# ==========================================
2022-11-25 23:54:43 +05:30
check-release-set :
extends : .rules:prepare
stage : .pre
script :
- |
if [ -z "$RELEASE" ]; then
echo "E2E test pipeline requires omnibus installation docker image to be set via $RELEASE environment variable"
exit 1
else
echo "Omnibus installation image is set to '$RELEASE'"
fi
dont-interrupt-me :
extends : .rules:dont-interrupt
stage : .pre
interruptible : false
script :
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
2022-10-11 01:57:18 +05:30
trigger-omnibus-env :
extends :
2022-11-25 23:54:43 +05:30
- .rules:omnibus-build
2022-10-11 01:57:18 +05:30
stage : .pre
2023-03-04 22:38:38 +05:30
needs :
# We need this job because we need its `cached-assets-hash.txt` artifact, so that we can pass the assets image tag to the downstream omnibus-gitlab pipeline.
- pipeline : $PARENT_PIPELINE_ID
job : build-assets-image
variables :
BUILD_ENV : build.env
before_script :
- |
# This is duplicating the function from `scripts/utils.sh` since `.gitlab/ci/package-and-test/main.gitlab-ci.yml` can be included in other projects.
function assets_image_tag() {
local cache_assets_hash_file="cached-assets-hash.txt"
if [[ -n "${CI_COMMIT_TAG}" ]]; then
echo -n "${CI_COMMIT_REF_NAME}"
elif [[ -f "${cache_assets_hash_file}" ]]; then
echo -n "assets-hash-$(cat ${cache_assets_hash_file} | cut -c1-10)"
else
echo -n "${CI_COMMIT_SHA}"
fi
}
script :
- |
SECURITY_SOURCES=$([[ ! "$CI_PROJECT_NAMESPACE" =~ ^gitlab-org\/security ]] || echo "true")
echo "SECURITY_SOURCES=${SECURITY_SOURCES:-false}" > $BUILD_ENV
echo "OMNIBUS_GITLAB_CACHE_UPDATE=${OMNIBUS_GITLAB_CACHE_UPDATE:-false}" >> $BUILD_ENV
for version_file in *_VERSION; do echo "$version_file=$(cat $version_file)" >> $BUILD_ENV; done
echo "OMNIBUS_GITLAB_RUBY3_BUILD=${OMNIBUS_GITLAB_RUBY3_BUILD:-false}" >> $BUILD_ENV
2023-05-27 22:25:52 +05:30
echo "OMNIBUS_GITLAB_RUBY2_BUILD=${OMNIBUS_GITLAB_RUBY2_BUILD:-false}" >> $BUILD_ENV
2023-03-04 22:38:38 +05:30
echo "OMNIBUS_GITLAB_CACHE_EDITION=${OMNIBUS_GITLAB_CACHE_EDITION:-GITLAB}" >> $BUILD_ENV
echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV
2023-05-12 17:06:39 +05:30
echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV
target_branch_name="${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_COMMIT_REF_NAME}}"
echo "TRIGGER_BRANCH=$([[ "${target_branch_name}" =~ ^[0-9-]+-stable(-ee)?$ ]] && echo ${target_branch_name%-ee} || echo 'master')" >> $BUILD_ENV
2023-03-04 22:38:38 +05:30
echo "Built environment file for omnibus build:"
cat $BUILD_ENV
artifacts :
reports :
dotenv : $BUILD_ENV
2022-10-11 01:57:18 +05:30
trigger-omnibus :
2022-11-25 23:54:43 +05:30
extends : .rules:omnibus-build
2022-10-11 01:57:18 +05:30
stage : .pre
needs :
- trigger-omnibus-env
inherit :
variables : false
variables :
GITALY_SERVER_VERSION : $GITALY_SERVER_VERSION
GITLAB_ELASTICSEARCH_INDEXER_VERSION : $GITLAB_ELASTICSEARCH_INDEXER_VERSION
GITLAB_KAS_VERSION : $GITLAB_KAS_VERSION
GITLAB_METRICS_EXPORTER_VERSION : $GITLAB_METRICS_EXPORTER_VERSION
GITLAB_PAGES_VERSION : $GITLAB_PAGES_VERSION
GITLAB_SHELL_VERSION : $GITLAB_SHELL_VERSION
GITLAB_WORKHORSE_VERSION : $GITLAB_WORKHORSE_VERSION
GITLAB_VERSION : $CI_COMMIT_SHA
2023-03-04 22:38:38 +05:30
GITLAB_ASSETS_TAG : $GITLAB_ASSETS_TAG
2022-10-11 01:57:18 +05:30
IMAGE_TAG : $CI_COMMIT_SHA
TOP_UPSTREAM_SOURCE_PROJECT : $CI_PROJECT_PATH
SECURITY_SOURCES : $SECURITY_SOURCES
CACHE_UPDATE : $OMNIBUS_GITLAB_CACHE_UPDATE
2022-11-25 23:54:43 +05:30
RUBY3_BUILD : $OMNIBUS_GITLAB_RUBY3_BUILD
2023-05-27 22:25:52 +05:30
RUBY2_BUILD : $OMNIBUS_GITLAB_RUBY2_BUILD
2022-11-25 23:54:43 +05:30
CACHE_EDITION : $OMNIBUS_GITLAB_CACHE_EDITION
2022-10-11 01:57:18 +05:30
SKIP_QA_TEST : "true"
2023-05-12 17:06:39 +05:30
ee : $EE
2022-10-11 01:57:18 +05:30
trigger :
project : gitlab-org/build/omnibus-gitlab-mirror
2023-05-12 17:06:39 +05:30
branch : $TRIGGER_BRANCH
2022-10-11 01:57:18 +05:30
strategy : depend
download-knapsack-report :
extends :
2022-11-25 23:54:43 +05:30
- .gitlab-qa-image
2023-04-23 21:23:45 +05:30
- .rules:download-knapsack
2022-10-11 01:57:18 +05:30
stage : .pre
2022-11-25 23:54:43 +05:30
variables :
KNAPSACK_DIR : ${CI_PROJECT_DIR}/qa/knapsack
GIT_STRATEGY : none
2022-10-11 01:57:18 +05:30
script :
2022-11-25 23:54:43 +05:30
# when using qa-image, code runs in /home/gitlab/qa folder
2022-10-11 01:57:18 +05:30
- bundle exec rake "knapsack:download[test]"
2022-11-25 23:54:43 +05:30
- mkdir -p "$KNAPSACK_DIR" && cp knapsack/*.json "${KNAPSACK_DIR}/"
2022-10-11 01:57:18 +05:30
allow_failure : true
artifacts :
paths :
2022-11-25 23:54:43 +05:30
- qa/knapsack/*.json
2022-10-11 01:57:18 +05:30
expire_in : 1 day
cache-gems :
extends :
2022-11-25 23:54:43 +05:30
- .qa-install
2022-10-11 01:57:18 +05:30
- .ruby-image
2023-01-13 00:05:48 +05:30
- .rules:update-cache
2022-10-11 01:57:18 +05:30
stage : .pre
tags :
- e2e
script :
- echo "Populated qa cache"
2022-11-25 23:54:43 +05:30
cache :
policy : pull-push
2022-10-11 01:57:18 +05:30
# ==========================================
# Test stage
# ==========================================
# ------------------------------------------
# Manual jobs
# ------------------------------------------
# Run manual quarantine job
# this job requires passing QA_SCENARIO variable
# and optionally QA_TESTS to run specific quarantined tests
2023-05-27 22:25:52 +05:30
_quarantine :
2022-10-11 01:57:18 +05:30
extends :
- .qa
2022-11-25 23:54:43 +05:30
- .rules:test:manual
2022-10-11 01:57:18 +05:30
needs :
2022-11-25 23:54:43 +05:30
- job : trigger-omnibus
optional : true
2022-10-11 01:57:18 +05:30
stage : test
variables :
QA_RSPEC_TAGS : --tag quarantine
2023-05-27 22:25:52 +05:30
# Temporary test job to support the effort of migrating to Super Sidebar
# https://gitlab.com/groups/gitlab-org/-/epics/9044
_super-sidebar-nav :
extends :
- .qa
- .parallel
variables :
QA_SCENARIO : Test::Instance::Image
QA_KNAPSACK_REPORT_NAME : ee-instance
QA_TESTS : ""
QA_SUPER_SIDEBAR_ENABLED : "true"
QA_ALLURE_RESULTS_DIRECTORY : tmp/allure-results-super-sidebar
QA_EXPORT_TEST_METRICS : "false"
GITLAB_QA_OPTS : --set-feature-flags super_sidebar_nav=enabled
RSPEC_REPORT_OPTS : "--format documentation"
SKIP_REPORT_IN_ISSUES : "true"
allow_failure : true
rules :
- if : $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
# ------------------------------------------
# FF changes
# ------------------------------------------
# Run specs with feature flags set to the opposite of the default state
2023-05-27 22:25:52 +05:30
instance-ff-inverse :
2022-10-11 01:57:18 +05:30
extends :
- .qa
- .parallel
variables :
QA_SCENARIO : Test::Instance::Image
2023-04-23 21:23:45 +05:30
QA_KNAPSACK_REPORT_NAME : ee-instance
2022-10-11 01:57:18 +05:30
GITLAB_QA_OPTS : --set-feature-flags $QA_FEATURE_FLAGS
rules :
- !reference [.rules:test:feature-flags-set, rules]
# ------------------------------------------
# Jobs with parallel variant
# ------------------------------------------
2023-05-27 22:25:52 +05:30
instance-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
instance :
2022-10-11 01:57:18 +05:30
extends :
- .parallel
2023-05-27 22:25:52 +05:30
- instance-selective
2022-10-11 01:57:18 +05:30
rules :
2023-05-27 22:25:52 +05:30
- !reference [.rules:test:feature-flags-set, rules] # always run instance to validate ff change
2022-10-11 01:57:18 +05:30
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
praefect-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Praefect
QA_CAN_TEST_PRAEFECT : "true"
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
praefect :
2022-10-11 01:57:18 +05:30
extends :
- .parallel
2023-05-27 22:25:52 +05:30
- praefect-selective
2022-10-11 01:57:18 +05:30
rules :
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
relative-url-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::RelativeUrl
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
relative-url :
2022-10-11 01:57:18 +05:30
extends :
- .parallel
2023-05-27 22:25:52 +05:30
- relative-url-selective
2022-10-11 01:57:18 +05:30
rules :
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
decomposition-single-db-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
GITLAB_QA_OPTS : --omnibus-config decomposition_single_db
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
decomposition-single-db :
2022-10-11 01:57:18 +05:30
extends :
- .parallel
2023-05-27 22:25:52 +05:30
- decomposition-single-db-selective
2022-10-11 01:57:18 +05:30
rules :
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
decomposition-multiple-db-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
2023-04-23 21:23:45 +05:30
GITLAB_ALLOW_SEPARATE_CI_DATABASE : "true"
2022-10-11 01:57:18 +05:30
GITLAB_QA_OPTS : --omnibus-config decomposition_multiple_db
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
decomposition-multiple-db :
2022-10-11 01:57:18 +05:30
extends :
- .parallel
2023-05-27 22:25:52 +05:30
- decomposition-multiple-db-selective
2022-10-11 01:57:18 +05:30
rules :
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::All/
2023-05-27 22:25:52 +05:30
object-storage-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
QA_RSPEC_TAGS : --tag object_storage
GITLAB_QA_OPTS : --omnibus-config object_storage
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::ObjectStorage/
2023-05-27 22:25:52 +05:30
object-storage :
extends : object-storage-selective
2022-10-11 01:57:18 +05:30
parallel : 2
rules :
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::ObjectStorage/
2023-05-27 22:25:52 +05:30
object-storage-aws-selective :
extends : object-storage-selective
2022-10-11 01:57:18 +05:30
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
2023-05-27 22:25:52 +05:30
object-storage-aws :
extends : object-storage-aws-selective
2022-10-11 01:57:18 +05:30
parallel : 2
rules :
2023-05-27 22:25:52 +05:30
- !reference [object-storage, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
object-storage-gcs-selective :
extends : object-storage-selective
2022-10-11 01:57:18 +05:30
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
2023-05-27 22:25:52 +05:30
object-storage-gcs :
extends : object-storage-gcs-selective
2022-10-11 01:57:18 +05:30
parallel : 2
rules :
2023-05-27 22:25:52 +05:30
- !reference [object-storage, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
packages-selective :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
QA_RSPEC_TAGS : --tag packages
GITLAB_QA_OPTS : --omnibus-config packages
rules :
2023-04-23 21:23:45 +05:30
- !reference [.rules:test:qa-selective, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::Packages/
2023-05-27 22:25:52 +05:30
packages :
extends : packages-selective
2022-10-11 01:57:18 +05:30
parallel : 2
rules :
- !reference [.rules:test:qa-parallel, rules]
- if : $QA_SUITES =~ /Test::Instance::Packages/
# ------------------------------------------
# Non parallel jobs
# ------------------------------------------
2023-05-27 22:25:52 +05:30
update-minor :
2022-10-11 01:57:18 +05:30
extends :
- .qa
- .update-script
variables :
UPDATE_TYPE : minor
QA_RSPEC_TAGS : --tag smoke
rules :
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:update, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::Smoke/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
update-major :
2022-10-11 01:57:18 +05:30
extends :
- .qa
- .update-script
variables :
UPDATE_TYPE : major
QA_RSPEC_TAGS : --tag smoke
rules :
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:update, rules]
2022-10-11 01:57:18 +05:30
- if : $QA_SUITES =~ /Test::Instance::Smoke/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
gitlab-pages :
2023-01-13 00:05:48 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::GitlabPages
rules :
- !reference [.rules:test:qa, rules]
2023-03-17 16:20:25 +05:30
- if : $QA_SUITES =~ /Test::Instance::GitlabPages/
2023-01-13 00:05:48 +05:30
- !reference [.rules:test:manual, rules]
2023-05-27 22:25:52 +05:30
gitaly-cluster :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::GitalyCluster
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::GitalyCluster/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
group-saml :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::GroupSAML
rules :
2023-05-27 22:25:52 +05:30
- !reference [.rules:test:ee-only, rules]
2022-10-11 01:57:18 +05:30
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::GroupSAML/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
instance-saml :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::InstanceSAML
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::InstanceSAML/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
jira :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Jira
JIRA_ADMIN_USERNAME : $QA_JIRA_ADMIN_USERNAME
JIRA_ADMIN_PASSWORD : $QA_JIRA_ADMIN_PASSWORD
rules :
- !reference [.rules:test:qa, rules]
2023-04-23 21:23:45 +05:30
- if : $QA_SUITES =~ /Test::Integration::Jira/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
integrations :
2023-03-04 22:38:38 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Integrations
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::Integrations/
- !reference [.rules:test:manual, rules]
2023-05-27 22:25:52 +05:30
ldap-no-server :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::LDAPNoServer
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::LDAPNoServer/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
ldap-tls :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::LDAPTLS
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::LDAPTLS/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
ldap-no-tls :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::LDAPNoTLS
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::LDAPNoTLS/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
mtls :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::MTLS
rules :
- !reference [.rules:test:qa, rules]
2023-04-23 21:23:45 +05:30
- if : $QA_SUITES =~ /Test::Integration::Mtls/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
mattermost :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Mattermost
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::Mattermost/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
registry :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Registry
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::Registry/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
registry-with-cdn :
2022-10-11 01:57:18 +05:30
extends : .qa
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
before_script :
- unset GITLAB_QA_ADMIN_ACCESS_TOKEN
- !reference [.qa, before_script]
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::RegistryWithCDN/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
repository-storage :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::RepositoryStorage
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Instance::RepositoryStorage/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
service-ping-disabled :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::ServicePingDisabled
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::ServicePingDisabled/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
smtp :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::SMTP
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::SMTP/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
cloud-activation :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
QA_RSPEC_TAGS : --tag cloud_activation
rules :
- !reference [.rules:test:qa, rules]
2023-03-17 16:20:25 +05:30
- if : $QA_SUITES =~ /Test::Instance::CloudActivation/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
large-setup :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Instance::Image
QA_RSPEC_TAGS : --tag can_use_large_setup
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Instance::LargeSetup/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
metrics :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Metrics
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Instance::Metrics/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
elasticsearch :
2022-10-11 01:57:18 +05:30
extends : .qa
variables :
QA_SCENARIO : "Test::Integration::Elasticsearch"
before_script :
- !reference [.qa, before_script]
rules :
2023-05-27 22:25:52 +05:30
- !reference [.rules:test:ee-only, rules]
2022-10-11 01:57:18 +05:30
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::Elasticsearch/
2022-11-25 23:54:43 +05:30
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
2023-05-27 22:25:52 +05:30
registry-object-storage-tls :
extends : object-storage-aws-selective
2022-10-11 01:57:18 +05:30
variables :
QA_SCENARIO : Test::Integration::RegistryTLS
QA_RSPEC_TAGS : ""
GITLAB_TLS_CERTIFICATE : $QA_GITLAB_TLS_CERTIFICATE
GITLAB_QA_OPTS : --omnibus-config registry_object_storage
2023-05-27 22:25:52 +05:30
importers :
2023-03-04 22:38:38 +05:30
extends : .qa
variables :
QA_SCENARIO : Test::Integration::Import
2023-03-17 16:20:25 +05:30
QA_MOCK_GITHUB : "true"
2023-03-04 22:38:38 +05:30
rules :
- !reference [.rules:test:qa, rules]
- if : $QA_SUITES =~ /Test::Integration::Import/
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
# ==========================================
# Post test stage
# ==========================================
e2e-test-report :
extends :
- .generate-allure-report-base
- .rules:report:allure-report
stage : report
variables :
2023-05-27 22:25:52 +05:30
ALLURE_JOB_NAME : e2e-package-and-test
2023-04-23 21:23:45 +05:30
GITLAB_AUTH_TOKEN : $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE
2022-10-11 01:57:18 +05:30
ALLURE_PROJECT_PATH : $CI_PROJECT_PATH
ALLURE_MERGE_REQUEST_IID : $CI_MERGE_REQUEST_IID
2023-05-27 22:25:52 +05:30
# Temporary separate test report for super-sidebar test job
# TODO: remove once super-sidebar is on by default and enabled in tests
# https://gitlab.com/groups/gitlab-org/-/epics/9044
e2e-test-report-super-sidebar :
extends :
- .generate-allure-report-base
stage : report
needs :
- _super-sidebar-nav
variables :
ALLURE_JOB_NAME : e2e-super-sidebar
ALLURE_RESULTS_GLOB : gitlab-qa-run-*/**/allure-results-super-sidebar
rules :
- if : $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
- !reference [.rules:test:manual, rules]
2022-10-11 01:57:18 +05:30
upload-knapsack-report :
extends :
- .generate-knapsack-report-base
2022-11-25 23:54:43 +05:30
- .qa-install
2022-10-11 01:57:18 +05:30
- .ruby-image
- .rules:report:process-results
stage : report
when : always
2023-01-13 00:05:48 +05:30
export-test-metrics :
extends :
- .qa-install
- .ruby-image
- .rules:report:process-results
stage : report
when : always
script :
- bundle exec rake "ci:export_test_metrics[$CI_PROJECT_DIR/gitlab-qa-run-*/**/test-metrics-*.json]"
2022-10-11 01:57:18 +05:30
relate-test-failures :
extends :
2022-11-25 23:54:43 +05:30
- .qa-install
2022-10-11 01:57:18 +05:30
- .ruby-image
- .rules:report:process-results
stage : report
variables :
QA_FAILURES_REPORTING_PROJECT : gitlab-org/gitlab
QA_FAILURES_MAX_DIFF_RATIO : "0.15"
2023-04-23 21:23:45 +05:30
GITLAB_QA_ACCESS_TOKEN : $QA_GITLAB_CI_TOKEN
2022-10-11 01:57:18 +05:30
when : on_failure
script :
- |
bundle exec gitlab-qa-report \
--relate-failure-issue "$CI_PROJECT_DIR/gitlab-qa-run-*/**/rspec-*.json" \
--project "$QA_FAILURES_REPORTING_PROJECT" \
--max-diff-ratio "$QA_FAILURES_MAX_DIFF_RATIO"
generate-test-session :
extends :
2022-11-25 23:54:43 +05:30
- .qa-install
2022-10-11 01:57:18 +05:30
- .ruby-image
- .rules:report:process-results
stage : report
variables :
QA_TESTCASE_SESSIONS_PROJECT : gitlab-org/quality/testcase-sessions
GITLAB_QA_ACCESS_TOKEN : $QA_TEST_SESSION_TOKEN
GITLAB_CI_API_TOKEN : $QA_GITLAB_CI_TOKEN
when : always
script :
- |
bundle exec gitlab-qa-report \
--generate-test-session "$CI_PROJECT_DIR/gitlab-qa-run-*/**/rspec-*.json" \
--project "$QA_TESTCASE_SESSIONS_PROJECT"
artifacts :
when : always
expire_in : 1d
paths :
- qa/REPORT_ISSUE_URL
notify-slack :
extends :
- .notify-slack-qa
2022-11-25 23:54:43 +05:30
- .qa-install
2022-10-11 01:57:18 +05:30
- .ruby-image
- .rules:report:process-results
stage : notify
variables :
ALLURE_JOB_NAME : e2e-package-and-test
SLACK_ICON_EMOJI : ci_failing
STATUS_SYM : ☠️
STATUS : failed
2022-11-25 23:54:43 +05:30
TYPE : "(package-and-test) "
2022-10-11 01:57:18 +05:30
when : on_failure
script :
2023-01-13 00:05:48 +05:30
- bundle exec gitlab-qa-report --prepare-stage-reports "$CI_PROJECT_DIR/gitlab-qa-run-*/**/rspec-*.xml" # generate summary
2022-10-11 01:57:18 +05:30
- !reference [.notify-slack-qa, script]