diff --git a/.evergreen/config/build-task-groups.yml b/.evergreen/config/build-task-groups.yml index 8aebe38d7..f11b32843 100644 --- a/.evergreen/config/build-task-groups.yml +++ b/.evergreen/config/build-task-groups.yml @@ -11,7 +11,7 @@ task_groups: # Builds all versions of PHP - name: "build-all-php" # Keep this number in sync with the number of PHP versions to allow for parallel builds - max_hosts: 3 + max_hosts: 4 setup_task: *build_setup setup_task_can_fail_task: true setup_task_timeout_secs: 1800 @@ -19,9 +19,20 @@ task_groups: tasks: - ".build" + # TODO: Remove task group once PHP 8.4 is available on PPC and Zseries + - name: "build-all-php-except-8.4" + # Keep this number in sync with the number of PHP versions to allow for parallel builds + max_hosts: 4 + setup_task: *build_setup + setup_task_can_fail_task: true + setup_task_timeout_secs: 1800 + teardown_task: *build_teardown + tasks: + - ".build !.php8.4" + - name: "build-php-libmongoc" # Keep this in sync with the actual number of libmongoc builds (typically 3) defined in _template-build-libmongoc.yml - max_hosts: 3 + max_hosts: 4 setup_task: *build_setup setup_task_can_fail_task: true setup_task_timeout_secs: 1800 diff --git a/.evergreen/config/build-variants.yml b/.evergreen/config/build-variants.yml index fcae62505..af5d72889 100644 --- a/.evergreen/config/build-variants.yml +++ b/.evergreen/config/build-variants.yml @@ -29,7 +29,8 @@ buildvariants: tags: ["build", "rhel", "zseries", "tag"] run_on: rhel8-zseries-small tasks: - - name: "build-all-php" + # TODO: Re-enable PHP 8.4 once it's available on PPC and Zseries + - name: "build-all-php-except-8.4" - name: build-rhel8-arm64 display_name: "Build: RHEL 8 ARM64" tags: ["build", "rhel", "arm64", "tag"] @@ -41,7 +42,8 @@ buildvariants: tags: ["build", "rhel", "power8", "tag"] run_on: rhel8-power-large tasks: - - name: "build-all-php" + # TODO: Re-enable PHP 8.4 once it's available on PPC and Zseries + - name: "build-all-php-except-8.4" - name: build-rhel8 display_name: "Build: RHEL 8 x64" tags: ["build", "rhel", "x64", "pr", "tag"] diff --git a/.evergreen/config/generate-config.php b/.evergreen/config/generate-config.php index 973f0981a..4e8014cc8 100644 --- a/.evergreen/config/generate-config.php +++ b/.evergreen/config/generate-config.php @@ -3,6 +3,7 @@ // Supported PHP versions. Add new versions to the beginning of the list $phpVersions = [ + '8.4', '8.3', '8.2', '8.1', @@ -21,7 +22,9 @@ '4.0', ]; -$latestPhpVersion = max($phpVersions); +// TODO: Change when PHP 8.4 is stable +// $latestPhpVersion = max($phpVersions); +$latestPhpVersion = '8.3'; // Only test the latest PHP version for libmongoc $libmongocBuildPhpVersions = [ $latestPhpVersion ]; @@ -106,4 +109,3 @@ function generateConfigs( return '.evergreen/config' . $filename; } - diff --git a/.evergreen/config/generated/build/build-php.yml b/.evergreen/config/generated/build/build-php.yml index 7ac4f49c5..6126a1466 100644 --- a/.evergreen/config/generated/build/build-php.yml +++ b/.evergreen/config/generated/build/build-php.yml @@ -1,5 +1,12 @@ # This file is generated automatically - please edit the "templates/build/build-php.yml" template file instead. tasks: + - name: "build-php-8.4" + tags: ["build", "php8.4", "pr", "tag"] + commands: + - func: "compile driver" + vars: + PHP_VERSION: "8.4" + - func: "upload build" - name: "build-php-8.3" tags: ["build", "php8.3", "pr", "tag"] commands: diff --git a/.evergreen/config/generated/test-variant/php-full.yml b/.evergreen/config/generated/test-variant/php-full.yml index 17872b842..fd32527cc 100644 --- a/.evergreen/config/generated/test-variant/php-full.yml +++ b/.evergreen/config/generated/test-variant/php-full.yml @@ -1,6 +1,86 @@ # This file is generated automatically - please edit the "templates/test-variant/php-full.yml" template file instead. buildvariants: # Test MongoDB >= 7.0 + - name: test-debian12-php-8.4 + tags: ["test", "debian", "x64", "php8.4", "pr", "tag"] + display_name: "Test: Debian 12, PHP 8.4" + run_on: debian12-small + expansions: + FETCH_BUILD_VARIANT: "build-debian12" + FETCH_BUILD_TASK: "build-php-8.4" + depends_on: + - variant: "build-debian12" + name: "build-php-8.4" + tasks: + - ".standalone .local !.4.0 !.4.2 !.4.4 !.5.0 !.6.0" + - ".replicaset .local !.4.0 !.4.2 !.4.4 !.5.0 !.6.0" + - ".sharded .local !.4.0 !.4.2 !.4.4 !.5.0 !.6.0" + - ".loadbalanced .local !.4.0 !.4.2 !.4.4 !.5.0 !.6.0" + - ".ocsp !.4.4 !.5.0 !.6.0" + - "test-atlas-connectivity" + display_tasks: + - name: "test-ocsp-latest" + execution_tasks: + - ".ocsp .latest" + - name: "test-ocsp-rapid" + execution_tasks: + - ".ocsp .rapid" + - name: "test-ocsp-8.0" + execution_tasks: + - ".ocsp .8.0" + - name: "test-ocsp-7.0" + execution_tasks: + - ".ocsp .7.0" + + # Test MongoDB 5.0 and 6.0 + - name: test-debian11-php-8.4 + tags: ["test", "debian", "x64", "php8.4", "pr", "tag"] + display_name: "Test: Debian 11, PHP 8.4" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-8.4" + depends_on: + - variant: "build-debian11" + name: "build-php-8.4" + tasks: + # Remember to add new major versions here as they are released + - ".standalone .local !.4.0 !.4.2 !.4.4 !.7.0 !.8.0 !.rapid !.latest" + - ".replicaset .local !.4.0 !.4.2 !.4.4 !.7.0 !.8.0 !.rapid !.latest" + - ".sharded .local !.4.0 !.4.2 !.4.4 !.7.0 !.8.0 !.rapid !.latest" + - ".loadbalanced .local !.4.0 !.4.2 !.4.4 !.7.0 !.8.0 !.rapid !.latest" + - ".ocsp !.4.4 !.7.0 !.8.0 !.rapid !.latest" + display_tasks: + - name: "test-ocsp-6.0" + execution_tasks: + - ".ocsp .6.0" + - name: "test-ocsp-5.0" + execution_tasks: + - ".ocsp .5.0" + + # Test versions < 5.0 + - name: test-rhel80-php-8.4 + tags: ["test", "rhel", "x64", "php8.4", "pr", "tag"] + display_name: "Test: RHEL 8.0, PHP 8.4" + run_on: rhel80-small + expansions: + FETCH_BUILD_VARIANT: "build-rhel8" + FETCH_BUILD_TASK: "build-php-8.4" + depends_on: + - variant: "build-rhel8" + name: "build-php-8.4" + tasks: + # Remember to add new major versions here as they are released + - ".standalone .local !.5.0 !.6.0 !.7.0 !.8.0 !.rapid !.latest" + - ".replicaset .local !.5.0 !.6.0 !.7.0 !.8.0 !.rapid !.latest" + - ".sharded .local !.5.0 !.6.0 !.7.0 !.8.0 !.rapid !.latest" + - ".loadbalanced .local !.5.0 !.6.0 !.7.0 !.8.0 !.rapid !.latest" + - ".ocsp !.5.0 !.6.0 !.7.0 !.8.0 !.rapid !.latest" + display_tasks: + - name: "test-ocsp-4.4" + execution_tasks: + - ".ocsp .4.4" + # Test MongoDB >= 7.0 - name: test-debian12-php-8.3 tags: ["test", "debian", "x64", "php8.3", "pr", "tag"] display_name: "Test: Debian 12, PHP 8.3" diff --git a/.github/workflows/build-windows-package.yml b/.github/workflows/build-windows-package.yml index f7b782218..a867c7d9a 100644 --- a/.github/workflows/build-windows-package.yml +++ b/.github/workflows/build-windows-package.yml @@ -120,7 +120,7 @@ jobs: "7.4") COMPILER="vc15" ;; - "8.0" | "8.1" | "8.2") + "8.0" | "8.1" | "8.2" | "8.3") COMPILER="vs16" ;; "8.4")