Commit 14c65a2e authored by catch's avatar catch
Browse files

Issue #3387055 by longwave, andypost, fjgarlin: Configure GitLabCI matrix testing

parent a9f3f72e
Loading
Loading
Loading
Loading
Loading
+50 −35
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ include:
################

variables:
  _TARGET_PHP: "8.2"
  COMPOSER: composer.json
  # Let composer know what self.version means.
  COMPOSER_ROOT_VERSION: "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}${CI_COMMIT_BRANCH}-dev"
@@ -63,55 +62,71 @@ variables:
    strategy: depend
    include:
      - local: .gitlab-ci/pipeline.yml

.run-on-commit: &run-on-commit
  rules:
    - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_ROOT_NAMESPACE == "project"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"

.run-manually: &run-manually
      when: manual
      allow_failure: true

'PHP 8.2 MySQL 5.7':
  <<: [ *default-stage, *run-manually ]
  variables:
    _TARGET_DB_TYPE: "mysql"
    _TARGET_DB_VERSION: "5.7"
    _DB_IMAGE: $_CONFIG_DOCKERHUB_ROOT/$_TARGET_DB_TYPE-$_TARGET_DB_VERSION:production
.run-daily: &run-daily
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_ROOT_NAMESPACE == "project"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: manual
      allow_failure: true

# Default configuration.
'PHP 8.2 MySQL 8':
  <<: *default-stage
  variables:
    _TARGET_DB_TYPE: "mysql"
    _TARGET_DB_VERSION: "8"
    _DB_IMAGE: $_CONFIG_DOCKERHUB_ROOT/$_TARGET_DB_TYPE-$_TARGET_DB_VERSION:production
    _TARGET_PHP: "8.2"
    _TARGET_DB: "mysql-8"
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_ROOT_NAMESPACE == "project"
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_ROOT_NAMESPACE == "project"
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_ROOT_NAMESPACE == "project"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"

'PHP 8.2 PostgreSQL 13.5':
  <<: [ *default-stage, *run-manually ]
# Run on commit, or manually.
'PHP 8.1 MySQL 5.7':
  <<: [ *default-stage, *run-on-commit ]
  variables:
    _TARGET_DB_TYPE: "pgsql"
    _TARGET_DB_VERSION: "13.5"
    _DB_IMAGE: $_CONFIG_DOCKERHUB_ROOT/$_TARGET_DB_TYPE-$_TARGET_DB_VERSION:production
    _TARGET_PHP: "8.1"
    _TARGET_DB: "mysql-5.7"

'PHP 8.2 PostgreSQL 14.1':
  <<: [ *default-stage, *run-manually ]
  <<: [ *default-stage, *run-on-commit ]
  variables:
    _TARGET_DB_TYPE: "pgsql"
    _TARGET_DB_VERSION: "14.1"
    _DB_IMAGE: $_CONFIG_DOCKERHUB_ROOT/$_TARGET_DB_TYPE-$_TARGET_DB_VERSION:production
    _TARGET_PHP: "8.2"
    _TARGET_DB: "pgsql-14.1"

# 'PHP 8.2 SQLite 3.34.0':
#   <<: [ *default-stage, *run-on-commit ]
#   variables:
#     _TARGET_PHP: "8.2"
#     _TARGET_DB: "php-$_TARGET_PHP-apache"

# Run daily, or manually.
# 'PHP 8.1 MariaDB 10.3.22':
#   <<: [ *default-stage, *run-daily ]
#   variables:
#     _TARGET_PHP: "8.1"
#     _TARGET_DB: "mariadb-10.3.22"

# 'PHP 8.2 SQLite 3.26.0':
#   <<: [ *default-stage, *run-manually ]
# 'PHP 8.1 MySQL 5.7 with updated deps':
#   <<: [ *default-stage, *run-daily ]
#   variables:
#     _TARGET_DB_TYPE: "sqlite"
#     _TARGET_DB_VERSION: "3.26.0"
#     _DB_IMAGE: $_CONFIG_DOCKERHUB_ROOT/php-$_TARGET_PHP-apache:production
#     _TARGET_PHP: "8.1"
#     _TARGET_DB: "mysql-5.7"

'PHP 8.1 PostgreSQL 14.1':
  <<: [ *default-stage, *run-daily ]
  variables:
    _TARGET_PHP: "8.1"
    _TARGET_DB: "pgsql-14.1"

# 'PHP 8.2 MariaDB 10.3.22':
#   <<: [ *default-stage, *run-manually ]
# 'PHP 8.1 SQLite 3.27.0':
#   <<: [ *default-stage, *run-daily ]
#   variables:
#     _TARGET_DB_TYPE: "mariadb"
#     _TARGET_DB_VERSION: "10.3.22"
#     _DB_IMAGE: $_CONFIG_DOCKERHUB_ROOT/$_TARGET_DB_TYPE-$_TARGET_DB_VERSION:production
#     _TARGET_PHP: "8.1"
#     _TARGET_DB: "php-$_TARGET_PHP-apache"
+9 −20
Original line number Diff line number Diff line
@@ -116,8 +116,6 @@ stages:
  MYSQL_DATABASE: mysql
  MYSQL_USER: drupaltestbot
  MYSQL_PASSWORD: drupaltestbotpw
  MARIADB_TAG: $_TARGET_DB_VERSION
  POSTGRES_TAG: $_TARGET_DB_VERSION
  POSTGRES_DB: drupaltestbot
  POSTGRES_USER: drupaltestbot
  POSTGRES_PASSWORD: drupaltestbotpw
@@ -126,7 +124,7 @@ stages:
  CI_PARALLEL_NODE_TOTAL: $CI_NODE_TOTAL

.with-database: &with-database
  name: $_DB_IMAGE
  name: $_CONFIG_DOCKERHUB_ROOT/$_TARGET_DB:production
  alias: database

.with-chrome: &with-chrome
@@ -158,10 +156,10 @@ stages:
  script:
    # Determine DB driver.
    - |
      [[ $_TARGET_DB_TYPE == "sqlite" ]] && export SIMPLETEST_DB=sqlite://localhost/subdirectory/sites/default/files/db.sqlite?module=sqlite
      [[ $_TARGET_DB_TYPE == "mysql" ]] && export SIMPLETEST_DB=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB_TYPE == "mariadb" ]] && export SIMPLETEST_DB=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB_TYPE == "pgsql" ]] && export SIMPLETEST_DB=pgsql://$POSTGRES_USER:$POSTGRES_PASSWORD@database/$POSTGRES_DB?module=pgsql
      [[ $_TARGET_DB == php* ]] && export SIMPLETEST_DB=sqlite://localhost/subdirectory/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
    - export
    - mkdir -p ./sites/simpletest ./sites/default/files ./build/logs/junit /var/www/.composer
    - chown -R www-data:www-data ./sites ./build/logs/junit ./vendor /var/www/
@@ -183,15 +181,6 @@ stages:
# Build Jobs
################

'ℹ️ Output build parameters':
  <<: *default-job-settings
  stage: 🏗️ Build
  script:
    - echo "Checking variables"
    - echo $_TARGET_PHP
    - echo $_TARGET_DB_TYPE
    - echo $_TARGET_DB_VERSION

'📦️ Composer':
  <<: *default-job-settings
  stage: 🏗️ Build
@@ -335,10 +324,10 @@ stages:
  script:
    # Determine DB driver.
    - |
      [[ $_TARGET_DB_TYPE == "sqlite" ]] && export DRUPAL_TEST_DB_URL=sqlite://localhost/subdirectory/sites/default/files/db.sqlite?module=sqlite
      [[ $_TARGET_DB_TYPE == "mysql" ]] && export DRUPAL_TEST_DB_URL=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB_TYPE == "mariadb" ]] && export DRUPAL_TEST_DB_URL=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB_TYPE == "pgsql" ]] && export DRUPAL_TEST_DB_URL=pgsql://$POSTGRES_USER:$POSTGRES_PASSWORD@database/$POSTGRES_DB?module=pgsql
      [[ $_TARGET_DB == php* ]] && export DRUPAL_TEST_DB_URL=sqlite://localhost/subdirectory/sites/default/files/db.sqlite?module=sqlite
      [[ $_TARGET_DB == mysql* ]] && export DRUPAL_TEST_DB_URL=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB == mariadb* ]] && export DRUPAL_TEST_DB_URL=mysql://$MYSQL_USER:$MYSQL_PASSWORD@database/$MYSQL_DATABASE?module=mysql
      [[ $_TARGET_DB == pgsql* ]] && export DRUPAL_TEST_DB_URL=pgsql://$POSTGRES_USER:$POSTGRES_PASSWORD@database/$POSTGRES_DB?module=pgsql
    - export
    - cp ./core/.env.example ./core/.env
    # dotenv-safe/config does not support environment variables