Skip to content

Commit 9a42fd3

Browse files
authored
Reduce amount of evergreen config includes (#1362)
1 parent c700dfc commit 9a42fd3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1074
-1164
lines changed

.evergreen/config.yml

Lines changed: 8 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -65,40 +65,11 @@ include:
6565
- filename: .evergreen/config/test-variants.yml
6666

6767
# Automatically generated files
68-
- filename: .evergreen/config/generated/build/build-php-8.3.yml
69-
- filename: .evergreen/config/generated/build/build-php-8.2.yml
70-
- filename: .evergreen/config/generated/build/build-php-8.1.yml
71-
- filename: .evergreen/config/generated/build/build-php-8.0.yml
72-
- filename: .evergreen/config/generated/build/build-php-7.4.yml
73-
- filename: .evergreen/config/generated/test/local-latest.yml
74-
- filename: .evergreen/config/generated/test/local-rapid.yml
75-
- filename: .evergreen/config/generated/test/local-7.0.yml
76-
- filename: .evergreen/config/generated/test/local-6.0.yml
77-
- filename: .evergreen/config/generated/test/local-5.0.yml
78-
- filename: .evergreen/config/generated/test/local-4.4.yml
79-
- filename: .evergreen/config/generated/test/local-4.2.yml
80-
- filename: .evergreen/config/generated/test/local-4.0.yml
81-
- filename: .evergreen/config/generated/test/local-3.6.yml
82-
- filename: .evergreen/config/generated/test/load-balanced-latest.yml
83-
- filename: .evergreen/config/generated/test/load-balanced-rapid.yml
84-
- filename: .evergreen/config/generated/test/load-balanced-7.0.yml
85-
- filename: .evergreen/config/generated/test/load-balanced-6.0.yml
86-
- filename: .evergreen/config/generated/test/load-balanced-5.0.yml
87-
- filename: .evergreen/config/generated/test/require-api-version-latest.yml
88-
- filename: .evergreen/config/generated/test/require-api-version-rapid.yml
89-
- filename: .evergreen/config/generated/test/require-api-version-7.0.yml
90-
- filename: .evergreen/config/generated/test/require-api-version-6.0.yml
91-
- filename: .evergreen/config/generated/test/require-api-version-5.0.yml
92-
- filename: .evergreen/config/generated/test/csfle-latest.yml
93-
- filename: .evergreen/config/generated/test/csfle-rapid.yml
94-
- filename: .evergreen/config/generated/test/csfle-7.0.yml
95-
- filename: .evergreen/config/generated/test/csfle-6.0.yml
96-
- filename: .evergreen/config/generated/test/csfle-5.0.yml
97-
- filename: .evergreen/config/generated/test/csfle-4.4.yml
98-
- filename: .evergreen/config/generated/test/csfle-4.2.yml
99-
- filename: .evergreen/config/generated/test-variant/latest-php-8.3.yml
100-
- filename: .evergreen/config/generated/test-variant/replicaset-php-8.2.yml
101-
- filename: .evergreen/config/generated/test-variant/replicaset-php-8.1.yml
102-
- filename: .evergreen/config/generated/test-variant/replicaset-php-8.0.yml
103-
- filename: .evergreen/config/generated/test-variant/replicaset-php-7.4.yml
104-
- filename: .evergreen/config/generated/test-variant/lowest-php-7.4.yml
68+
- filename: .evergreen/config/generated/build/build-extension.yml
69+
- filename: .evergreen/config/generated/test/local.yml
70+
- filename: .evergreen/config/generated/test/load-balanced.yml
71+
- filename: .evergreen/config/generated/test/require-api-version.yml
72+
- filename: .evergreen/config/generated/test/csfle.yml
73+
- filename: .evergreen/config/generated/test-variant/latest.yml
74+
- filename: .evergreen/config/generated/test-variant/replicaset-only.yml
75+
- filename: .evergreen/config/generated/test-variant/lowest.yml

.evergreen/config/generate-config.php

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -47,51 +47,56 @@
4747
$allFiles = [];
4848

4949
// Build tasks
50-
$allFiles[] = generateConfigs('build', 'phpVersion', 'build-extension.yml', 'build-php-%s', $supportedPhpVersions);
50+
$allFiles[] = generateConfigs('tasks', 'build', 'phpVersion', 'build-extension.yml', $supportedPhpVersions);
5151

5252
// Test tasks
53-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'local.yml', 'local-%s', $localServerVersions);
54-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'load-balanced.yml', 'load-balanced-%s', $loadBalancedServerVersions);
55-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'require-api-version.yml', 'require-api-version-%s', $requireApiServerVersions);
56-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'csfle.yml', 'csfle-%s', $csfleServerVersions);
53+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'local.yml', $localServerVersions);
54+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'load-balanced.yml', $loadBalancedServerVersions);
55+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'require-api-version.yml', $requireApiServerVersions);
56+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'csfle.yml', $csfleServerVersions);
5757

5858
// 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]);
59+
$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'latest.yml', [$latestPhpVersion]);
60+
$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'replicaset-only.yml', array_diff($supportedPhpVersions, [$latestPhpVersion]));
61+
$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'lowest.yml', [$lowestPhpVersion]);
6262

6363
echo "Generated config. Use the following list to import files:\n";
64-
echo implode("\n", array_map('getImportConfig', array_merge(...$allFiles))) . "\n";
64+
echo implode("\n", array_map('getImportConfig', $allFiles)) . "\n";
6565

6666
function getImportConfig(string $filename): string
6767
{
6868
return '- filename: ' . $filename;
6969
}
7070

7171
function generateConfigs(
72+
string $type,
7273
string $directory,
7374
string $replacementName,
7475
string $templateFile,
75-
string $outputFormat,
7676
array $versions,
77-
): array {
77+
): string {
7878
$templateRelativePath = 'templates/' . $directory . '/' . $templateFile;
7979
$template = file_get_contents(__DIR__ . '/' . $templateRelativePath);
8080
$header = sprintf(
8181
'# This file is generated automatically - please edit the "%s" template file instead.',
8282
$templateRelativePath
8383
);
8484

85-
$files = [];
85+
$contents = <<<HEADER
86+
$header
87+
$type:
8688
87-
foreach ($versions as $version) {
88-
$filename = sprintf('/generated/%s/' . $outputFormat . '.yml', $directory, $version);
89-
$files[] = '.evergreen/config' . $filename;
90-
91-
$replacements = ['%' . $replacementName . '%' => $version];
89+
HEADER;
9290

93-
file_put_contents(__DIR__ . $filename, $header . "\n" . strtr($template, $replacements));
91+
foreach ($versions as $version) {
92+
$contents .= strtr(
93+
$template,
94+
['%' . $replacementName . '%' => $version],
95+
);
9496
}
9597

96-
return $files;
98+
$filename = '/generated/' . $directory . '/' . $templateFile;
99+
file_put_contents(__DIR__ . $filename, $contents);
100+
101+
return '.evergreen/config' . $filename;
97102
}

.evergreen/config/generated/build/build-extension.yml

Lines changed: 192 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/generated/build/build-php-7.4.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

.evergreen/config/generated/build/build-php-8.0.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)