2022-10-11 01:57:18 +05:30
|
|
|
# Specific specs passed
|
|
|
|
.specific-specs: &specific-specs
|
|
|
|
if: $QA_TESTS != ""
|
|
|
|
|
|
|
|
# No specific specs passed
|
|
|
|
.all-specs: &all-specs
|
|
|
|
if: $QA_TESTS == ""
|
|
|
|
|
|
|
|
# FF changes
|
|
|
|
.feature-flags-set: &feature-flags-set
|
|
|
|
if: $QA_FEATURE_FLAGS != ""
|
|
|
|
|
|
|
|
# Only deleted feature flags
|
|
|
|
.feature-flags-deleted: &feature-flags-deleted
|
|
|
|
if: $QA_FEATURE_FLAGS != "" && $QA_FEATURE_FLAGS !~ /enabled|disabled/
|
|
|
|
|
|
|
|
# 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
|
|
|
|
when: manual
|
|
|
|
allow_failure: true
|
|
|
|
|
|
|
|
# QA framework changes present
|
|
|
|
.qa-framework-changes: &qa-framework-changes
|
|
|
|
if: $QA_FRAMEWORK_CHANGES == "true"
|
|
|
|
|
|
|
|
# Process test results (notify failure to slack, create test session report, relate test failures)
|
|
|
|
.process-test-results: &process-test-results
|
|
|
|
if: $PROCESS_TEST_RESULTS == "true"
|
|
|
|
|
|
|
|
# Selective test execution against omnibus instance have following execution scenarios:
|
|
|
|
# * only e2e spec files changed - runs only changed specs
|
|
|
|
# * qa framework changes - runs full test suite
|
|
|
|
# * feature flag changed - runs full test suite with base gitlab instance configuration with both ff states
|
|
|
|
# * quarantined e2e spec - skips execution of e2e tests by creating a no-op pipeline
|
|
|
|
|
|
|
|
# ------------------------------------------
|
|
|
|
# Prepare
|
|
|
|
# ------------------------------------------
|
|
|
|
.rules:prepare:
|
|
|
|
rules:
|
|
|
|
- when: always
|
|
|
|
|
2022-11-25 23:54:43 +05:30
|
|
|
.rules:dont-interrupt:
|
|
|
|
rules:
|
|
|
|
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
|
|
|
|
allow_failure: true
|
|
|
|
- if: $CI_MERGE_REQUEST_IID
|
|
|
|
when: manual
|
|
|
|
allow_failure: true
|
|
|
|
|
|
|
|
.rules:omnibus-build:
|
|
|
|
rules:
|
|
|
|
- if: $SKIP_OMNIBUS_TRIGGER == "true"
|
|
|
|
when: never
|
|
|
|
- when: always
|
|
|
|
|
2022-10-11 01:57:18 +05:30
|
|
|
# ------------------------------------------
|
|
|
|
# Test
|
|
|
|
# ------------------------------------------
|
2022-11-25 23:54:43 +05:30
|
|
|
.rules:test:manual:
|
2022-10-11 01:57:18 +05:30
|
|
|
rules:
|
|
|
|
- when: manual
|
2022-11-25 23:54:43 +05:30
|
|
|
allow_failure: true
|
2022-10-11 01:57:18 +05:30
|
|
|
variables:
|
|
|
|
QA_TESTS: ""
|
|
|
|
|
|
|
|
.rules:test:feature-flags-set:
|
|
|
|
rules:
|
|
|
|
# unset specific specs if pipeline has feature flag changes and run full suite
|
|
|
|
- <<: *feature-flags-set
|
|
|
|
variables:
|
|
|
|
QA_TESTS: ""
|
|
|
|
|
|
|
|
.rules:test:feature-flags-deleted:
|
|
|
|
rules:
|
|
|
|
- <<: *feature-flags-deleted
|
|
|
|
when: never
|
|
|
|
|
|
|
|
# parallel and non parallel rules are used for jobs that require parallel execution and thus need to switch
|
|
|
|
# between parallel and non parallel when only certain specs are executed
|
|
|
|
.rules:test:qa-non-parallel:
|
|
|
|
rules:
|
|
|
|
# always run parallel with full suite when framework changes present or ff state changed
|
|
|
|
- <<: *qa-framework-changes
|
|
|
|
when: never
|
|
|
|
- <<: *all-specs
|
|
|
|
when: never
|
|
|
|
- <<: *feature-flags-set
|
|
|
|
when: never
|
|
|
|
|
|
|
|
.rules:test:qa-parallel:
|
|
|
|
rules:
|
|
|
|
- *qa-framework-changes
|
|
|
|
- <<: *specific-specs
|
2022-11-25 23:54:43 +05:30
|
|
|
when: manual
|
|
|
|
allow_failure: true
|
|
|
|
variables:
|
|
|
|
QA_TESTS: ""
|
2022-10-11 01:57:18 +05:30
|
|
|
- *feature-flags-set-manual
|
|
|
|
|
|
|
|
# general qa job rule for jobs without the need to run in parallel
|
|
|
|
.rules:test:qa:
|
|
|
|
rules:
|
|
|
|
- *qa-framework-changes
|
|
|
|
- *feature-flags-set-manual
|
|
|
|
|
2022-11-25 23:54:43 +05:30
|
|
|
.rules:test:update:
|
|
|
|
rules:
|
|
|
|
# skip upgrade jobs if gitlab version is not provided
|
|
|
|
# these jobs need gitlab version because we can't reliably detect it from just the image
|
|
|
|
- if: $GITLAB_VERSION == null
|
|
|
|
when: never
|
|
|
|
- !reference [.rules:test:qa, rules]
|
|
|
|
|
2022-10-11 01:57:18 +05:30
|
|
|
# ------------------------------------------
|
|
|
|
# Report
|
|
|
|
# ------------------------------------------
|
|
|
|
.rules:report:allure-report:
|
|
|
|
rules:
|
2022-11-25 23:54:43 +05:30
|
|
|
- if: $SKIP_ALLURE_REPORT == "true"
|
|
|
|
when: never
|
2022-10-11 01:57:18 +05:30
|
|
|
- when: always
|
|
|
|
|
|
|
|
.rules:report:process-results:
|
|
|
|
rules:
|
|
|
|
- *process-test-results
|