Skip to content

Commit 96b7017

Browse files
authored
PHPLIB-563: Finalise PHP runtime axis (#788)
* Test against all PHP 7 compatible systems * Add test against lowest supported dependencies * Hardcode PEAR paths to fix PECL installation * Exclude OS versions that don't execute * Move PHP version tests to the top
1 parent 38a1ba9 commit 96b7017

File tree

2 files changed

+42
-5
lines changed

2 files changed

+42
-5
lines changed

.evergreen/config.yml

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ functions:
261261
${PREPARE_SHELL}
262262
file="${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh"
263263
# Don't use ${file} syntax here because evergreen treats it as an empty expansion.
264-
[ -f "$file" ] && PHP_VERSION=${PHP_VERSION} DRIVER_VERSION=${DRIVER_VERSION} DRIVER_REPO=${DRIVER_REPO} DRIVER_BRANCH=${DRIVER_BRANCH} sh $file || echo "$file not available, skipping"
264+
[ -f "$file" ] && PHP_VERSION=${PHP_VERSION} DRIVER_VERSION=${DRIVER_VERSION} DRIVER_REPO=${DRIVER_REPO} DRIVER_BRANCH=${DRIVER_BRANCH} DEPENDENCIES=${DEPENDENCIES} sh $file || echo "$file not available, skipping"
265265
266266
pre:
267267
- func: "fetch source"
@@ -434,6 +434,10 @@ axes:
434434
- id: driver-versions
435435
display_name: Driver Version
436436
values:
437+
- id: "lowest-supported"
438+
display_name: "1.8.0"
439+
variables:
440+
DRIVER_VERSION: "1.8.0"
437441
- id: "latest-stable"
438442
display_name: "1.8-stable"
439443
- id: "latest-minor-dev"
@@ -459,7 +463,7 @@ axes:
459463
run_on: rhel71-power8-test
460464
- id: rhel74-zseries
461465
display_name: "RHEL 7.4 zSeries"
462-
run_on: rhel72-zseries-test
466+
run_on: rhel74-zseries-test
463467
- id: ubuntu1804-arm64-test
464468
display_name: "Ubuntu 18.04 ARM64"
465469
run_on: ubuntu1804-arm64-test
@@ -520,16 +524,26 @@ axes:
520524
variables:
521525
STORAGE_ENGINE: "inmemory"
522526

527+
- id: dependencies
528+
display_name: Dependencies
529+
values:
530+
- id: lowest
531+
display_name: Lowest
532+
variables:
533+
DEPENDENCIES: "lowest"
523534

524535
buildvariants:
525536

526537
# Tests all PHP versions on all operating systems.
527538
# Only tests against latest MongoDB and ext-mongodb versions
528539
- matrix_name: "test-php-versions"
529-
matrix_spec: {"os-php7": ["debian92-test", "ubuntu1804-arm64-test", "rhel70-test"], "php-versions": "*", "edge-versions": "latest-stable", "driver-versions": "latest-stable" }
540+
matrix_spec: {"os-php7": "*", "php-versions": "*", "edge-versions": "latest-stable", "driver-versions": "latest-stable" }
530541
exclude_spec:
531-
- { "os-php7": ["debian92-test", "rhel70-test"], "php-versions": "7.0", edge-versions: "*", "driver-versions": "*" }
532-
display_name: "PHP ${php-versions}, ${os-php7}, MongoDB ${edge-versions}, ext-mongodb ${driver-versions}"
542+
# rhel71-power8 fails due to not reaching pecl
543+
- { "os-php7": "rhel71-power8", "php-versions": "*", edge-versions: "*", "driver-versions": "*" }
544+
# rhel74-zseries doesn't start in a timely fashion - most likely missing executors
545+
- { "os-php7": "rhel74-zseries", "php-versions": "*", edge-versions: "*", "driver-versions": "*" }
546+
display_name: "* ${os-php7}, PHP ${php-versions}, MongoDB ${edge-versions}, ext-mongodb ${driver-versions}"
533547
tasks:
534548
- name: "test-standalone"
535549
- name: "test-replica_set"
@@ -556,6 +570,16 @@ buildvariants:
556570
- name: "test-replica_set"
557571
- name: "test-sharded_cluster"
558572

573+
# Tests oldest supported version
574+
# Enables --prefer-lowest for composer to test oldest dependencies against all server versions
575+
- matrix_name: "test-dependencies"
576+
matrix_spec: { "dependencies": "lowest", "os-php7": "rhel70-test", "php-edge-versions": "oldest-supported", "versions": "*", "driver-versions": "lowest-supported" }
577+
display_name: "Dependencies: ${dependencies}, MongoDB ${versions}, PHP ${php-edge-versions}, ${os-php7}, ext-mongodb ${driver-versions}"
578+
tasks:
579+
- name: "test-standalone"
580+
- name: "test-replica_set"
581+
- name: "test-sharded_cluster"
582+
559583
- matrix_name: "atlas-data-lake-test"
560584
matrix_spec: { "php-edge-versions": "latest-stable" }
561585
display_name: "Atlas Data Lake test"

.evergreen/install-dependencies.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ set -o errexit # Exit the script with error if any of the commands fail
44

55
install_extension ()
66
{
7+
# Workaround to get PECL running on PHP 7.0
8+
export PHP_PEAR_PHP_BIN=${PHP_PATH}/bin/php
9+
export PHP_PEAR_INSTALL_DIR=${PHP_PATH}/lib/php
10+
711
rm -f ${PHP_PATH}/lib/php.ini
812

913
if [ "x${DRIVER_BRANCH}" != "x" ] || [ "x${DRIVER_REPO}" != "x" ]; then
@@ -72,6 +76,15 @@ case "$DISTRO" in
7276
;;
7377
esac
7478

79+
case "$DEPENDENCIES" in
80+
lowest*)
81+
COMPOSER_FLAGS="${COMPOSER_FLAGS} --prefer-lowest"
82+
;;
83+
84+
*)
85+
;;
86+
esac
87+
7588
PHP_PATH=/opt/php/${PHP_VERSION}-64bit
7689
OLD_PATH=$PATH
7790
PATH=$PHP_PATH/bin:$OLD_PATH

0 commit comments

Comments
 (0)