Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
pipeline.yml 11.72 KiB
# cspell:ignore cobertura drupaltestbot drupaltestbotpw Dwebdriver logfile testdox XVFB

stages:
  - 🗜️ Test

#############
# Templates #
#############

default:
  interruptible: true
  retry:
    max: 2
    when:
      - unknown_failure
      - api_failure
      - stuck_or_timeout_failure
      - runner_system_failure
      - scheduler_failure
  image:
    name: $_CONFIG_DOCKERHUB_ROOT/php-$_TARGET_PHP-apache:production
  before_script:
    - |
      [[ $_TARGET_DB == sqlite* ]] && export SIMPLETEST_DB=sqlite://localhost/$CI_PROJECT_DIR/sites/default/files/db.sqlite?module=sqlite
      [[ $_TARGET_DB == mysql* ]] && export SIMPLETEST_DB=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB == mariadb* ]] && export SIMPLETEST_DB=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB == pgsql* ]] && export SIMPLETEST_DB=pgsql://$POSTGRES_USER:$POSTGRES_PASSWORD@database/$POSTGRES_DB?module=pgsql
    - echo "SIMPLETEST_DB = $SIMPLETEST_DB"
    - $CI_PROJECT_DIR/.gitlab-ci/scripts/server-setup.sh
  after_script:
    - sed -i "s#$CI_PROJECT_DIR/##" ./sites/default/files/simpletest/phpunit-*.xml || true
  artifacts:
    when: always
    expire_in: 6 mos
    reports:
      junit: ./sites/default/files/simpletest/phpunit-*.xml
    paths:
      - ./sites/default/files/simpletest/phpunit-*.xml
      - ./sites/simpletest/browser_output
      - '*.log'

.default-job-settings: &default-job-settings
  stage: 🗜️ Test
  rules:
    - if: $CI_PIPELINE_SOURCE == "parent_pipeline" && $PERFORMANCE_TEST != "1"

.with-composer: &with-composer
  needs:
    - pipeline: $PARENT_PIPELINE_ID
      job: '🧹 PHP Coding standards (PHPCS)'

.with-composer-and-yarn: &with-composer-and-yarn
  needs:
    - pipeline: $PARENT_PIPELINE_ID
      job: '🧹 PHP Coding standards (PHPCS)'
    - pipeline: $PARENT_PIPELINE_ID
      job: '📔 Spell-checking'

variables:
  FF_NETWORK_PER_BUILD: 1
  SIMPLETEST_BASE_URL: http://localhost/subdirectory
  DB_DRIVER: mysql
  MYSQL_ROOT_PASSWORD: root
  MYSQL_DATABASE: mysql
  MYSQL_USER: drupaltestbot
  MYSQL_PASSWORD: drupaltestbotpw
  POSTGRES_DB: drupaltestbot
  POSTGRES_USER: drupaltestbot
  POSTGRES_PASSWORD: drupaltestbotpw
  MINK_DRIVER_ARGS_WEBDRIVER: '["chrome", {"browserName":"chrome", "goog:chromeOptions":{"w3c": true, "args":["--no-sandbox","--ignore-certificate-errors", "--allow-insecure-localhost", "--headless", "--dns-prefetch-disable"]}}, "http://selenium:4444"]'