Skip to content
Snippets Groups Projects
Commit 14c65a2e authored by catch's avatar catch
Browse files

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

parent a9f3f72e
No related branches found
No related tags found
No related merge requests found
......@@ -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"
when: manual
allow_failure: true
.run-manually: &run-manually
when: manual
'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"
# 'PHP 8.2 SQLite 3.26.0':
# <<: [ *default-stage, *run-manually ]
# Run daily, or manually.
# 'PHP 8.1 MariaDB 10.3.22':
# <<: [ *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: "mariadb-10.3.22"
# 'PHP 8.1 MySQL 5.7 with updated deps':
# <<: [ *default-stage, *run-daily ]
# variables:
# _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"
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment