116 lines
3.1 KiB
YAML
116 lines
3.1 KiB
YAML
.qa-job-base:
|
|
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
|
|
extends:
|
|
- .default-retry
|
|
- .qa-cache
|
|
stage: test
|
|
needs: []
|
|
variables:
|
|
USE_BUNDLE_INSTALL: "false"
|
|
SETUP_DB: "false"
|
|
before_script:
|
|
- !reference [.default-before_script, before_script]
|
|
- cd qa && bundle install
|
|
|
|
qa:internal:
|
|
extends:
|
|
- .qa-job-base
|
|
- .qa:rules:internal
|
|
script:
|
|
- bundle exec rspec -O .rspec_internal
|
|
|
|
qa:internal-as-if-foss:
|
|
extends:
|
|
- qa:internal
|
|
- .qa:rules:internal-as-if-foss
|
|
- .as-if-foss
|
|
|
|
qa:selectors:
|
|
extends:
|
|
- .qa-job-base
|
|
- .qa:rules:ee-and-foss
|
|
script:
|
|
- bundle exec bin/qa Test::Sanity::Selectors
|
|
|
|
qa:master-auto-quarantine-dequarantine:
|
|
extends:
|
|
- .qa-job-base
|
|
rules:
|
|
- if: '$QA_TRIGGER_AUTO_QUARANTINE =~ /true|yes|1/i'
|
|
script:
|
|
- bundle exec confiner -r .confiner/master.yml
|
|
allow_failure: true
|
|
|
|
qa:nightly-auto-quarantine-dequarantine:
|
|
extends:
|
|
- .qa-job-base
|
|
rules:
|
|
- if: '$QA_TRIGGER_AUTO_QUARANTINE =~ /true|yes|1/i'
|
|
script:
|
|
- bundle exec confiner -r .confiner/nightly.yml
|
|
allow_failure: true
|
|
|
|
qa:selectors-as-if-foss:
|
|
extends:
|
|
- qa:selectors
|
|
- .qa:rules:as-if-foss
|
|
- .as-if-foss
|
|
|
|
qa:update-qa-cache:
|
|
extends:
|
|
- .qa-job-base
|
|
- .qa-cache-push
|
|
- .shared:rules:update-cache
|
|
stage: prepare
|
|
script:
|
|
- echo "Cache has been updated and ready to be uploaded."
|
|
|
|
e2e:package-and-test:
|
|
extends:
|
|
- .production # this makes sure GITLAB_ALLOW_SEPARATE_CI_DATABASE is passed to the child pipeline
|
|
- .qa:rules:package-and-test
|
|
stage: qa
|
|
needs:
|
|
- build-assets-image
|
|
- build-qa-image
|
|
- e2e-test-pipeline-generate
|
|
variables:
|
|
# This is needed by `trigger-omnibus-env` (`.gitlab/ci/package-and-test/main.gitlab-ci.yml`).
|
|
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
|
|
SKIP_MESSAGE: Skipping package-and-test due to mr containing only quarantine changes!
|
|
RELEASE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ee:${CI_COMMIT_SHA}"
|
|
GITLAB_QA_IMAGE: "${CI_REGISTRY_IMAGE}/gitlab-ee-qa:${CI_COMMIT_SHA}"
|
|
RUN_WITH_BUNDLE: "true" # instructs pipeline to install and run gitlab-qa gem via bundler
|
|
QA_PATH: qa # sets the optional path for bundler to run from
|
|
inherit:
|
|
variables:
|
|
- CHROME_VERSION
|
|
- RUBY_VERSION
|
|
- DOCKER_VERSION
|
|
- REGISTRY_GROUP
|
|
- REGISTRY_HOST
|
|
trigger:
|
|
strategy: depend
|
|
forward:
|
|
yaml_variables: true
|
|
pipeline_variables: true
|
|
include:
|
|
- artifact: package-and-test-pipeline.yml
|
|
job: e2e-test-pipeline-generate
|
|
|
|
e2e:test-on-gdk:
|
|
extends:
|
|
- .qa:rules:e2e:test-on-gdk
|
|
stage: qa
|
|
needs:
|
|
# In scheduled master pipelines we wait for the image to be built.
|
|
# In MRs we assume the last scheduled master pipeline built the image already.
|
|
- job: build-qa-on-gdk-master-image
|
|
optional: true
|
|
allow_failure: true
|
|
trigger:
|
|
strategy: depend
|
|
forward:
|
|
yaml_variables: true
|
|
pipeline_variables: true
|
|
include: .gitlab/ci/test-on-gdk/main.gitlab-ci.yml
|