diff --git a/.evergreen/config.yml b/.evergreen/config.yml index e8c5572e1..e08def8d5 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -42,14 +42,14 @@ include: - filename: .evergreen/config/build-variants.yml - filename: .evergreen/config/test-tasks.yml - - filename: .evergreen/config/test-variants.yml # Automatically generated files + - filename: .evergreen/config/generated/build/build-php-8.3.yml - filename: .evergreen/config/generated/build/build-php-8.2.yml - filename: .evergreen/config/generated/build/build-php-8.1.yml - filename: .evergreen/config/generated/build/build-php-8.0.yml - filename: .evergreen/config/generated/build/build-php-7.4.yml - - filename: .evergreen/config/generated/build/build-libmongoc-8.2.yml + - filename: .evergreen/config/generated/build/build-libmongoc-8.3.yml - filename: .evergreen/config/generated/test/local-latest.yml - filename: .evergreen/config/generated/test/local-rapid.yml - filename: .evergreen/config/generated/test/local-7.0.yml @@ -79,3 +79,8 @@ include: - filename: .evergreen/config/generated/test/skip-crypt-shared-rapid.yml - filename: .evergreen/config/generated/test/skip-crypt-shared-7.0.yml - filename: .evergreen/config/generated/test/skip-crypt-shared-6.0.yml + - filename: .evergreen/config/generated/test-variant/latest-php-8.3.yml + - filename: .evergreen/config/generated/test-variant/replicaset-php-8.2.yml + - filename: .evergreen/config/generated/test-variant/replicaset-php-8.1.yml + - filename: .evergreen/config/generated/test-variant/replicaset-php-8.0.yml + - filename: .evergreen/config/generated/test-variant/replicaset-php-7.4.yml diff --git a/.evergreen/config/generate-config.php b/.evergreen/config/generate-config.php index 511107920..ea4f7f67a 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 $supportedPhpVersions = [ + '8.3', '8.2', '8.1', '8.0', @@ -22,8 +23,10 @@ '3.6', ]; +$latestPhpVersion = max($supportedPhpVersions); + // Only test the latest PHP version for libmongoc -$libmongocBuildPhpVersions = [ max($supportedPhpVersions) ]; +$libmongocBuildPhpVersions = [ $latestPhpVersion ]; // Server versions $localServerVersions = $supportedMongoDBVersions; @@ -61,6 +64,10 @@ $allFiles[] = generateConfigs('test', 'mongodbVersion', 'require-api-version.yml', 'require-api-version-%s', $requireApiServerVersions); $allFiles[] = generateConfigs('test', 'mongodbVersion', 'skip-crypt-shared.yml', 'skip-crypt-shared-%s', $skipCryptSharedServerVersions); +// Test variants +$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'latest.yml', 'latest-php-%s', [$latestPhpVersion]); +$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'replicaset-only.yml', 'replicaset-php-%s', array_diff($supportedPhpVersions, [$latestPhpVersion])); + echo "Generated config. Use the following list to import files:\n"; echo implode("\n", array_map('getImportConfig', array_merge(...$allFiles))) . "\n"; diff --git a/.evergreen/config/generated/build/build-libmongoc-8.2.yml b/.evergreen/config/generated/build/build-libmongoc-8.3.yml similarity index 77% rename from .evergreen/config/generated/build/build-libmongoc-8.2.yml rename to .evergreen/config/generated/build/build-libmongoc-8.3.yml index b4f0abfa6..78a6c0088 100644 --- a/.evergreen/config/generated/build/build-libmongoc-8.2.yml +++ b/.evergreen/config/generated/build/build-libmongoc-8.3.yml @@ -6,30 +6,30 @@ # where the "max_hosts" setting must be set to the number of enabled tasks. # Last but not least, make sure the corresponding test variants are enabled in .evergreen/config/test-variants.yml tasks: - - name: "build-php-8.2-libmongoc-lowest-supported" - tags: ["build-libmongoc", "php8.2"] + - name: "build-php-8.3-libmongoc-lowest-supported" + tags: ["build-libmongoc", "php8.3"] commands: - func: "compile driver" vars: - PHP_VERSION: "8.2" + PHP_VERSION: "8.3" LIBMONGOC_VERSION: "1eacb5d46f39c5404586e5d3d32e4bf9e6670bd2" - func: "upload build" - - name: "build-php-8.2-libmongoc-next-stable" - tags: ["build-libmongoc", "php8.2"] + - name: "build-php-8.3-libmongoc-next-stable" + tags: ["build-libmongoc", "php8.3"] commands: - func: "compile driver" vars: - PHP_VERSION: "8.2" + PHP_VERSION: "8.3" # TODO: change to r1.26 once 1.26.0 is released LIBMONGOC_VERSION: "1eacb5d46f39c5404586e5d3d32e4bf9e6670bd2" - func: "upload build" - - name: "build-php-8.2-libmongoc-latest" - tags: ["build-libmongoc", "php8.2"] + - name: "build-php-8.3-libmongoc-latest" + tags: ["build-libmongoc", "php8.3"] commands: - func: "compile driver" vars: - PHP_VERSION: "8.2" + PHP_VERSION: "8.3" LIBMONGOC_VERSION: "master" - func: "upload build" diff --git a/.evergreen/config/generated/build/build-php-8.3.yml b/.evergreen/config/generated/build/build-php-8.3.yml new file mode 100644 index 000000000..ea3df6c0f --- /dev/null +++ b/.evergreen/config/generated/build/build-php-8.3.yml @@ -0,0 +1,9 @@ +# This file is generated automatically - please edit the "templates/build/build-php.yml" template file instead. +tasks: + - name: "build-php-8.3" + tags: ["build", "php8.3"] + commands: + - func: "compile driver" + vars: + PHP_VERSION: "8.3" + - func: "upload build" diff --git a/.evergreen/config/test-variants.yml b/.evergreen/config/generated/test-variant/latest-php-8.3.yml similarity index 50% rename from .evergreen/config/test-variants.yml rename to .evergreen/config/generated/test-variant/latest-php-8.3.yml index 1a1ccfe52..fb66bf87b 100644 --- a/.evergreen/config/test-variants.yml +++ b/.evergreen/config/generated/test-variant/latest-php-8.3.yml @@ -1,18 +1,15 @@ -# -# Test variants - only run for select platforms worth testing on -# +# This file is generated automatically - please edit the "templates/test-variant/latest.yml" template file instead. buildvariants: - # PHP 8.2: test all topologies on all versions of MongoDB - - name: test-debian11-php82 + - name: test-debian11-php-8.3 tags: ["test", "debian", "x64"] - display_name: "Test: Debian 11, PHP 8.2" + display_name: "Test: Debian 11, PHP 8.3" run_on: debian11-small expansions: FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-8.2" + FETCH_BUILD_TASK: "build-php-8.3" depends_on: - variant: "build-debian11" - name: "build-php-8.2" + name: "build-php-8.3" tasks: - ".standalone .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" - ".replicaset .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" @@ -34,16 +31,16 @@ buildvariants: execution_tasks: - ".ocsp .6.0" - - name: test-debian92-php82 + - name: test-debian92-php-8.3 tags: ["test", "debian", "x64"] - display_name: "Test: Debian 9.2, PHP 8.2" + display_name: "Test: Debian 9.2, PHP 8.3" run_on: debian92-small expansions: FETCH_BUILD_VARIANT: "build-debian92" - FETCH_BUILD_TASK: "build-php-8.2" + FETCH_BUILD_TASK: "build-php-8.3" depends_on: - variant: "build-debian92" - name: "build-php-8.2" + name: "build-php-8.3" tasks: # Remember to add new major versions here as they are released - ".standalone .local !.6.0 !.7.0 !.rapid !.latest" @@ -59,82 +56,42 @@ buildvariants: execution_tasks: - ".ocsp .4.4" - # Test remaining PHP versions with replica sets on Debian 11 with MongoDB 7.0 - - name: test-debian11-php81 - tags: ["test", "debian", "x64"] - display_name: "Test: Debian 11, PHP 8.1" - run_on: debian11-small - expansions: - FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-8.1" - depends_on: - - variant: "build-debian11" - name: "build-php-8.1" - tasks: - - ".replicaset .local .7.0 .auth" - - - name: test-debian11-php80 - tags: ["test", "debian", "x64"] - display_name: "Test: Debian 11, PHP 8.0" - run_on: debian11-small - expansions: - FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-8.0" - depends_on: - - variant: "build-debian11" - name: "build-php-8.0" - tasks: - - ".replicaset .local .7.0 .auth" - - - name: test-debian11-php74 - tags: ["test", "debian", "x64"] - display_name: "Test: Debian 11, PHP 7.4" - run_on: debian11-small - expansions: - FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-7.4" - depends_on: - - variant: "build-debian11" - name: "build-php-7.4" - tasks: - - ".replicaset .local .7.0 .auth" - # Variants with different libmongoc - - name: test-debian11-php82-libmongoc-lowest-supported - display_name: "Test: Debian 11, PHP 8.2, libmongoc lowest" + - name: test-debian11-php-8.3-libmongoc-lowest-supported + display_name: "Test: Debian 11, PHP 8.3, libmongoc lowest" tags: ["test", "libmongoc", "debian", "x64"] run_on: debian11-small expansions: FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-8.2-libmongoc-lowest-supported" + FETCH_BUILD_TASK: "build-php-8.3-libmongoc-lowest-supported" depends_on: - variant: "build-debian11" - name: "build-php-8.2-libmongoc-lowest-supported" + name: "build-php-8.3-libmongoc-lowest-supported" tasks: - ".replicaset .local .7.0 .auth" - - name: test-debian11-php82-libmongoc-next-stable - display_name: "Test: Debian 11, PHP 8.2, libmongoc next stable" + - name: test-debian11-php-8.3-libmongoc-next-stable + display_name: "Test: Debian 11, PHP 8.3, libmongoc next stable" tags: ["test", "libmongoc", "debian", "x64"] run_on: debian11-small expansions: FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-8.2-libmongoc-next-stable" + FETCH_BUILD_TASK: "build-php-8.3-libmongoc-next-stable" depends_on: - variant: "build-debian11" - name: "build-php-8.2-libmongoc-next-stable" + name: "build-php-8.3-libmongoc-next-stable" tasks: - ".replicaset .local .7.0 .auth" - - name: test-debian11-php82-libmongoc-latest + - name: test-debian11-php-8.3-libmongoc-latest tags: ["test", "libmongoc", "debian", "x64"] - display_name: "Test: Debian 11, PHP 8.2, libmongoc latest" + display_name: "Test: Debian 11, PHP 8.3, libmongoc latest" run_on: debian11-small expansions: FETCH_BUILD_VARIANT: "build-debian11" - FETCH_BUILD_TASK: "build-php-8.2-libmongoc-latest" + FETCH_BUILD_TASK: "build-php-8.3-libmongoc-latest" depends_on: - variant: "build-debian11" - name: "build-php-8.2-libmongoc-latest" + name: "build-php-8.3-libmongoc-latest" tasks: - ".replicaset .local .7.0 .auth" diff --git a/.evergreen/config/generated/test-variant/replicaset-php-7.4.yml b/.evergreen/config/generated/test-variant/replicaset-php-7.4.yml new file mode 100644 index 000000000..fb3126419 --- /dev/null +++ b/.evergreen/config/generated/test-variant/replicaset-php-7.4.yml @@ -0,0 +1,14 @@ +# This file is generated automatically - please edit the "templates/test-variant/replicaset-only.yml" template file instead. +buildvariants: + - name: test-debian11-php-7.4 + tags: [ "test", "debian", "x64" ] + display_name: "Test: Debian 11, PHP 7.4" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-7.4" + depends_on: + - variant: "build-debian11" + name: "build-php-7.4" + tasks: + - ".replicaset .local .7.0 .auth" diff --git a/.evergreen/config/generated/test-variant/replicaset-php-8.0.yml b/.evergreen/config/generated/test-variant/replicaset-php-8.0.yml new file mode 100644 index 000000000..f75d3af9d --- /dev/null +++ b/.evergreen/config/generated/test-variant/replicaset-php-8.0.yml @@ -0,0 +1,14 @@ +# This file is generated automatically - please edit the "templates/test-variant/replicaset-only.yml" template file instead. +buildvariants: + - name: test-debian11-php-8.0 + tags: [ "test", "debian", "x64" ] + display_name: "Test: Debian 11, PHP 8.0" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-8.0" + depends_on: + - variant: "build-debian11" + name: "build-php-8.0" + tasks: + - ".replicaset .local .7.0 .auth" diff --git a/.evergreen/config/generated/test-variant/replicaset-php-8.1.yml b/.evergreen/config/generated/test-variant/replicaset-php-8.1.yml new file mode 100644 index 000000000..968d91614 --- /dev/null +++ b/.evergreen/config/generated/test-variant/replicaset-php-8.1.yml @@ -0,0 +1,14 @@ +# This file is generated automatically - please edit the "templates/test-variant/replicaset-only.yml" template file instead. +buildvariants: + - name: test-debian11-php-8.1 + tags: [ "test", "debian", "x64" ] + display_name: "Test: Debian 11, PHP 8.1" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-8.1" + depends_on: + - variant: "build-debian11" + name: "build-php-8.1" + tasks: + - ".replicaset .local .7.0 .auth" diff --git a/.evergreen/config/generated/test-variant/replicaset-php-8.2.yml b/.evergreen/config/generated/test-variant/replicaset-php-8.2.yml new file mode 100644 index 000000000..f8119d52a --- /dev/null +++ b/.evergreen/config/generated/test-variant/replicaset-php-8.2.yml @@ -0,0 +1,14 @@ +# This file is generated automatically - please edit the "templates/test-variant/replicaset-only.yml" template file instead. +buildvariants: + - name: test-debian11-php-8.2 + tags: [ "test", "debian", "x64" ] + display_name: "Test: Debian 11, PHP 8.2" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-8.2" + depends_on: + - variant: "build-debian11" + name: "build-php-8.2" + tasks: + - ".replicaset .local .7.0 .auth" diff --git a/.evergreen/config/templates/test-variant/latest.yml b/.evergreen/config/templates/test-variant/latest.yml new file mode 100644 index 000000000..a58a56596 --- /dev/null +++ b/.evergreen/config/templates/test-variant/latest.yml @@ -0,0 +1,96 @@ +buildvariants: + - name: test-debian11-php-%phpVersion% + tags: ["test", "debian", "x64"] + display_name: "Test: Debian 11, PHP %phpVersion%" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-%phpVersion%" + depends_on: + - variant: "build-debian11" + name: "build-php-%phpVersion%" + tasks: + - ".standalone .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" + - ".replicaset .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" + - ".sharded .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" + - ".loadbalanced .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" + - "test-atlas-connectivity" + - ".ocsp !.4.4 !.5.0" + display_tasks: + - name: "test-ocsp-latest" + execution_tasks: + - ".ocsp .latest" + - name: "test-ocsp-rapid" + execution_tasks: + - ".ocsp .rapid" + - name: "test-ocsp-7.0" + execution_tasks: + - ".ocsp .7.0" + - name: "test-ocsp-6.0" + execution_tasks: + - ".ocsp .6.0" + + - name: test-debian92-php-%phpVersion% + tags: ["test", "debian", "x64"] + display_name: "Test: Debian 9.2, PHP %phpVersion%" + run_on: debian92-small + expansions: + FETCH_BUILD_VARIANT: "build-debian92" + FETCH_BUILD_TASK: "build-php-%phpVersion%" + depends_on: + - variant: "build-debian92" + name: "build-php-%phpVersion%" + tasks: + # Remember to add new major versions here as they are released + - ".standalone .local !.6.0 !.7.0 !.rapid !.latest" + - ".replicaset .local !.6.0 !.7.0 !.rapid !.latest" + - ".sharded .local !.6.0 !.7.0 !.rapid !.latest" + - ".loadbalanced .local !.6.0 !.7.0 !.rapid !.latest" + - ".ocsp !.6.0 !.7.0 !.rapid !.latest" + display_tasks: + - name: "test-ocsp-5.0" + execution_tasks: + - ".ocsp .5.0" + - name: "test-ocsp-4.4" + execution_tasks: + - ".ocsp .4.4" + + # Variants with different libmongoc + - name: test-debian11-php-%phpVersion%-libmongoc-lowest-supported + display_name: "Test: Debian 11, PHP %phpVersion%, libmongoc lowest" + tags: ["test", "libmongoc", "debian", "x64"] + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-%phpVersion%-libmongoc-lowest-supported" + depends_on: + - variant: "build-debian11" + name: "build-php-%phpVersion%-libmongoc-lowest-supported" + tasks: + - ".replicaset .local .7.0 .auth" + + - name: test-debian11-php-%phpVersion%-libmongoc-next-stable + display_name: "Test: Debian 11, PHP %phpVersion%, libmongoc next stable" + tags: ["test", "libmongoc", "debian", "x64"] + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-%phpVersion%-libmongoc-next-stable" + depends_on: + - variant: "build-debian11" + name: "build-php-%phpVersion%-libmongoc-next-stable" + tasks: + - ".replicaset .local .7.0 .auth" + + - name: test-debian11-php-%phpVersion%-libmongoc-latest + tags: ["test", "libmongoc", "debian", "x64"] + display_name: "Test: Debian 11, PHP %phpVersion%, libmongoc latest" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-%phpVersion%-libmongoc-latest" + depends_on: + - variant: "build-debian11" + name: "build-php-%phpVersion%-libmongoc-latest" + tasks: + - ".replicaset .local .7.0 .auth" diff --git a/.evergreen/config/templates/test-variant/replicaset-only.yml b/.evergreen/config/templates/test-variant/replicaset-only.yml new file mode 100644 index 000000000..d694652d3 --- /dev/null +++ b/.evergreen/config/templates/test-variant/replicaset-only.yml @@ -0,0 +1,13 @@ +buildvariants: + - name: test-debian11-php-%phpVersion% + tags: [ "test", "debian", "x64" ] + display_name: "Test: Debian 11, PHP %phpVersion%" + run_on: debian11-small + expansions: + FETCH_BUILD_VARIANT: "build-debian11" + FETCH_BUILD_TASK: "build-php-%phpVersion%" + depends_on: + - variant: "build-debian11" + name: "build-php-%phpVersion%" + tasks: + - ".replicaset .local .7.0 .auth"