Skip to content

Commit 11d16a5

Browse files
committed
Generate test variants automatically based on PHP versions
1 parent 8274b8d commit 11d16a5

12 files changed

+288
-143
lines changed

.evergreen/config.yml

+6
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,9 @@ include:
7979
- filename: .evergreen/config/generated/test/csfle-5.0.yml
8080
- filename: .evergreen/config/generated/test/csfle-4.4.yml
8181
- filename: .evergreen/config/generated/test/csfle-4.2.yml
82+
- filename: .evergreen/config/generated/test-variant/latest-php-8.3.yml
83+
- filename: .evergreen/config/generated/test-variant/replicaset-php-8.2.yml
84+
- filename: .evergreen/config/generated/test-variant/replicaset-php-8.1.yml
85+
- filename: .evergreen/config/generated/test-variant/replicaset-php-8.0.yml
86+
- filename: .evergreen/config/generated/test-variant/replicaset-php-7.4.yml
87+
- filename: .evergreen/config/generated/test-variant/lowest-php-7.4.yml

.evergreen/config/generate-config.php

+8
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
'7.4'
1111
];
1212

13+
$latestPhpVersion = max($supportedPhpVersions);
14+
$lowestPhpVersion = min($supportedPhpVersions);
15+
1316
// Supported MongoDB versions. Add new versions after "rapid"
1417
$supportedMongoDBVersions = [
1518
'latest',
@@ -52,6 +55,11 @@
5255
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'require-api-version.yml', 'require-api-version-%s', $requireApiServerVersions);
5356
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'csfle.yml', 'csfle-%s', $csfleServerVersions);
5457

58+
// Test variants
59+
$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'latest.yml', 'latest-php-%s', [$latestPhpVersion]);
60+
$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'replicaset-only.yml', 'replicaset-php-%s', array_diff($supportedPhpVersions, [$latestPhpVersion]));
61+
$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'lowest.yml', 'lowest-php-%s', [$lowestPhpVersion]);
62+
5563
echo "Generated config. Use the following list to import files:\n";
5664
echo implode("\n", array_map('getImportConfig', array_merge(...$allFiles))) . "\n";
5765

.evergreen/config/generated/test-variant/latest-php-8.3.yml

+85
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/generated/test-variant/lowest-php-7.4.yml

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/generated/test-variant/replicaset-php-7.4.yml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/generated/test-variant/replicaset-php-8.0.yml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/generated/test-variant/replicaset-php-8.1.yml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/generated/test-variant/replicaset-php-8.2.yml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
buildvariants:
2+
- name: test-debian11-php-%phpVersion%-local
3+
tags: ["test", "debian", "x64"]
4+
display_name: "Test: Debian 11, PHP %phpVersion%"
5+
run_on: debian11-small
6+
expansions:
7+
FETCH_BUILD_VARIANT: "build-debian11"
8+
FETCH_BUILD_TASK: "build-php-%phpVersion%"
9+
PHP_VERSION: "%phpVersion%"
10+
VARIANT: debian11 # Referenced by ADL build script for downloading MQLRun
11+
depends_on:
12+
- variant: "build-debian11"
13+
name: "build-php-%phpVersion%"
14+
tasks:
15+
- ".standalone .local !.csfle !.3.6 !.4.0 !.4.2 !.4.4 !.5.0"
16+
- ".replicaset .local !.csfle !.3.6 !.4.0 !.4.2 !.4.4 !.5.0"
17+
- ".sharded .local !.csfle !.3.6 !.4.0 !.4.2 !.4.4 !.5.0"
18+
- ".loadbalanced .local !.csfle !.3.6 !.4.0 !.4.2 !.4.4 !.5.0"
19+
- ".serverless"
20+
- "test-atlas-data-lake"
21+
22+
- name: test-debian92-php-%phpVersion%-local
23+
tags: ["test", "debian", "x64"]
24+
display_name: "Test: Debian 9.2, PHP %phpVersion%"
25+
run_on: debian92-small
26+
expansions:
27+
FETCH_BUILD_VARIANT: "build-debian92"
28+
FETCH_BUILD_TASK: "build-php-%phpVersion%"
29+
PHP_VERSION: "%phpVersion%"
30+
depends_on:
31+
- variant: "build-debian92"
32+
name: "build-php-%phpVersion%"
33+
tasks:
34+
# Remember to add new major versions here as they are released
35+
- ".standalone .local !.csfle !.6.0 !.7.0 !.rapid !.latest"
36+
- ".replicaset .local !.csfle !.6.0 !.7.0 !.rapid !.latest"
37+
- ".sharded .local !.csfle !.6.0 !.7.0 !.rapid !.latest"
38+
- ".loadbalanced .local !.csfle !.6.0 !.7.0 !.rapid !.latest"
39+
40+
# Test with upcoming PHPC versions
41+
- name: test-debian11-php-%phpVersion%-phpc-next-stable
42+
tags: ["test", "debian", "x64"]
43+
display_name: "Test: Debian 11, PHP %phpVersion%, PHPC next-stable"
44+
run_on: debian11-small
45+
expansions:
46+
FETCH_BUILD_VARIANT: "build-debian11"
47+
FETCH_BUILD_TASK: "build-php-%phpVersion%-next-stable"
48+
PHP_VERSION: "%phpVersion%"
49+
depends_on:
50+
- variant: "build-debian11"
51+
name: "build-php-%phpVersion%-next-stable"
52+
tasks:
53+
- ".replicaset .local .7.0 !.csfle"
54+
55+
- name: test-debian11-php-%phpVersion%-phpc-next-minor
56+
tags: ["test", "debian", "x64"]
57+
display_name: "Test: Debian 11, PHP %phpVersion%, PHPC next-minor"
58+
run_on: debian11-small
59+
expansions:
60+
FETCH_BUILD_VARIANT: "build-debian11"
61+
FETCH_BUILD_TASK: "build-php-%phpVersion%-next-minor"
62+
PHP_VERSION: "%phpVersion%"
63+
depends_on:
64+
- variant: "build-debian11"
65+
name: "build-php-%phpVersion%-next-minor"
66+
tasks:
67+
- ".replicaset .local .7.0 !.csfle"
68+
69+
# Test Atlas and CSFLE on RHEL 8
70+
- name: test-rhel80-php-%phpVersion%-atlas
71+
tags: ["test", "debian", "x64"]
72+
display_name: "Test: RHEL 8.0, PHP %phpVersion%"
73+
run_on: rhel80-small
74+
expansions:
75+
FETCH_BUILD_VARIANT: "build-rhel80"
76+
FETCH_BUILD_TASK: "build-php-%phpVersion%"
77+
PHP_VERSION: "%phpVersion%"
78+
depends_on:
79+
- variant: "build-rhel80"
80+
name: "build-php-%phpVersion%"
81+
tasks:
82+
- "test_atlas_task_group"
83+
- ".csfle"
84+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
buildvariants:
2+
- name: test-debian92-php-%phpVersion%-local-lowest
3+
tags: ["test", "debian", "x64"]
4+
display_name: "Test: Debian 9.2, PHP %phpVersion%, Lowest Dependencies"
5+
run_on: debian92-small
6+
expansions:
7+
FETCH_BUILD_VARIANT: "build-debian92"
8+
FETCH_BUILD_TASK: "build-php-%phpVersion%-lowest"
9+
PHP_VERSION: "%phpVersion%"
10+
DEPENDENCIES: "lowest"
11+
depends_on:
12+
- variant: "build-debian92"
13+
name: "build-php-%phpVersion%-lowest"
14+
tasks:
15+
- ".replicaset .local .3.6 !.csfle"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
buildvariants:
2+
- name: test-debian11-php-%phpVersion%-local
3+
tags: [ "test", "debian", "x64" ]
4+
display_name: "Test: Debian 11, PHP %phpVersion%"
5+
run_on: debian11-small
6+
expansions:
7+
FETCH_BUILD_VARIANT: "build-debian11"
8+
FETCH_BUILD_TASK: "build-php-%phpVersion%"
9+
PHP_VERSION: "%phpVersion%"
10+
depends_on:
11+
- variant: "build-debian11"
12+
name: "build-php-%phpVersion%"
13+
tasks:
14+
- ".replicaset .local .7.0 !.csfle"

0 commit comments

Comments
 (0)