.qa-job-base:
  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_script

qa:internal:
  extends:
    - .qa-job-base
    - .qa:rules:ee-and-foss
  script:
    - bundle exec rspec

qa:internal-as-if-foss:
  extends:
    - qa:internal
    - .qa:rules: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:selectors-as-if-foss:
  extends:
    - qa:selectors
    - .qa:rules:as-if-foss
    - .as-if-foss

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."

.package-and-qa-base:
  image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
  stage: qa
  retry: 0
  before_script:
    - source scripts/utils.sh
    - install_gitlab_gem
  script:
    - ./scripts/trigger-build omnibus

package-and-qa:
  extends:
    - .package-and-qa-base
    - .qa:rules:package-and-qa
  # This job often times out, so temporarily use private runners and a long timeout: https://gitlab.com/gitlab-org/gitlab/-/issues/238563
  tags:
    - prm
  timeout: 4h
  needs:
    - job: build-qa-image
      artifacts: false
    - job: build-assets-image
      artifacts: false
