diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac71ad89a1b66dd7377f72477014257dc312a836..0159aef9e6e796fe015422062b6fc8a821c365d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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" diff --git a/.gitlab-ci/pipeline.yml b/.gitlab-ci/pipeline.yml index 1bdae7bf0c9834c8f24409547c8d3ef12c7bc5bf..6c17522d5821a647d153dfc7677c9dac3805e1db 100644 --- a/.gitlab-ci/pipeline.yml +++ b/.gitlab-ci/pipeline.yml @@ -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