Skip to content

Commit 5ac56a5

Browse files
authored
Reduce amount of evergreen config includes (#1612)
1 parent 76ba88b commit 5ac56a5

Some content is hidden

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

60 files changed

+3517
-3674
lines changed

.evergreen/config.yml

Lines changed: 9 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -67,44 +67,12 @@ include:
6767
- filename: .evergreen/config/test-tasks.yml
6868

6969
# Automatically generated files
70-
- filename: .evergreen/config/generated/build/build-php-8.3.yml
71-
- filename: .evergreen/config/generated/build/build-php-8.2.yml
72-
- filename: .evergreen/config/generated/build/build-php-8.1.yml
73-
- filename: .evergreen/config/generated/build/build-php-8.0.yml
74-
- filename: .evergreen/config/generated/build/build-php-7.4.yml
75-
- filename: .evergreen/config/generated/build/build-libmongoc-8.3.yml
76-
- filename: .evergreen/config/generated/test/local-latest.yml
77-
- filename: .evergreen/config/generated/test/local-rapid.yml
78-
- filename: .evergreen/config/generated/test/local-7.0.yml
79-
- filename: .evergreen/config/generated/test/local-6.0.yml
80-
- filename: .evergreen/config/generated/test/local-5.0.yml
81-
- filename: .evergreen/config/generated/test/local-4.4.yml
82-
- filename: .evergreen/config/generated/test/local-4.2.yml
83-
- filename: .evergreen/config/generated/test/local-4.0.yml
84-
- filename: .evergreen/config/generated/test/local-3.6.yml
85-
- filename: .evergreen/config/generated/test/load-balanced-latest.yml
86-
- filename: .evergreen/config/generated/test/load-balanced-rapid.yml
87-
- filename: .evergreen/config/generated/test/load-balanced-7.0.yml
88-
- filename: .evergreen/config/generated/test/load-balanced-6.0.yml
89-
- filename: .evergreen/config/generated/test/load-balanced-5.0.yml
90-
- filename: .evergreen/config/generated/test/ocsp-latest.yml
91-
- filename: .evergreen/config/generated/test/ocsp-rapid.yml
92-
- filename: .evergreen/config/generated/test/ocsp-7.0.yml
93-
- filename: .evergreen/config/generated/test/ocsp-6.0.yml
94-
- filename: .evergreen/config/generated/test/ocsp-5.0.yml
95-
- filename: .evergreen/config/generated/test/ocsp-4.4.yml
96-
- filename: .evergreen/config/generated/test/require-api-version-latest.yml
97-
- filename: .evergreen/config/generated/test/require-api-version-rapid.yml
98-
- filename: .evergreen/config/generated/test/require-api-version-7.0.yml
99-
- filename: .evergreen/config/generated/test/require-api-version-6.0.yml
100-
- filename: .evergreen/config/generated/test/require-api-version-5.0.yml
101-
- filename: .evergreen/config/generated/test/skip-crypt-shared-latest.yml
102-
- filename: .evergreen/config/generated/test/skip-crypt-shared-rapid.yml
103-
- filename: .evergreen/config/generated/test/skip-crypt-shared-7.0.yml
104-
- filename: .evergreen/config/generated/test/skip-crypt-shared-6.0.yml
105-
- filename: .evergreen/config/generated/test-variant/full-php-8.3.yml
106-
- filename: .evergreen/config/generated/test-variant/full-php-8.2.yml
107-
- filename: .evergreen/config/generated/test-variant/full-php-8.1.yml
108-
- filename: .evergreen/config/generated/test-variant/full-php-8.0.yml
109-
- filename: .evergreen/config/generated/test-variant/full-php-7.4.yml
110-
- filename: .evergreen/config/generated/test-variant/libmongoc-php-8.3.yml
70+
- filename: .evergreen/config/generated/build/build-php.yml
71+
- filename: .evergreen/config/generated/build/build-libmongoc.yml
72+
- filename: .evergreen/config/generated/test/local.yml
73+
- filename: .evergreen/config/generated/test/load-balanced.yml
74+
- filename: .evergreen/config/generated/test/ocsp.yml
75+
- filename: .evergreen/config/generated/test/require-api-version.yml
76+
- filename: .evergreen/config/generated/test/skip-crypt-shared.yml
77+
- filename: .evergreen/config/generated/test-variant/full.yml
78+
- filename: .evergreen/config/generated/test-variant/libmongoc.yml

.evergreen/config/generate-config.php

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -54,53 +54,58 @@
5454
$allFiles = [];
5555

5656
// Build tasks
57-
$allFiles[] = generateConfigs('build', 'phpVersion', 'build-php.yml', 'build-php-%s', $supportedPhpVersions);
58-
$allFiles[] = generateConfigs('build', 'phpVersion', 'build-libmongoc.yml', 'build-libmongoc-%s', $libmongocBuildPhpVersions);
57+
$allFiles[] = generateConfigs('tasks', 'build', 'phpVersion', 'build-php.yml', $supportedPhpVersions);
58+
$allFiles[] = generateConfigs('tasks', 'build', 'phpVersion', 'build-libmongoc.yml', $libmongocBuildPhpVersions);
5959

6060
// Test tasks
61-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'local.yml', 'local-%s', $localServerVersions);
62-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'load-balanced.yml', 'load-balanced-%s', $loadBalancedServerVersions);
63-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'ocsp.yml', 'ocsp-%s', $ocspServerVersions);
64-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'require-api-version.yml', 'require-api-version-%s', $requireApiServerVersions);
65-
$allFiles[] = generateConfigs('test', 'mongodbVersion', 'skip-crypt-shared.yml', 'skip-crypt-shared-%s', $skipCryptSharedServerVersions);
61+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'local.yml', $localServerVersions);
62+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'load-balanced.yml', $loadBalancedServerVersions);
63+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'ocsp.yml', $ocspServerVersions);
64+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'require-api-version.yml', $requireApiServerVersions);
65+
$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'skip-crypt-shared.yml', $skipCryptSharedServerVersions);
6666

6767
// Test variants
68-
$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'full.yml', 'full-php-%s', $supportedPhpVersions);
69-
$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'libmongoc.yml', 'libmongoc-php-%s', [$latestPhpVersion]);
68+
$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'full.yml', $supportedPhpVersions);
69+
$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'libmongoc.yml', [$latestPhpVersion]);
7070

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

7474
function getImportConfig(string $filename): string
7575
{
7676
return '- filename: ' . $filename;
7777
}
7878

7979
function generateConfigs(
80+
string $type,
8081
string $directory,
8182
string $replacementName,
8283
string $templateFile,
83-
string $outputFormat,
8484
array $versions,
85-
): array {
85+
): string {
8686
$templateRelativePath = 'templates/' . $directory . '/' . $templateFile;
8787
$template = file_get_contents(__DIR__ . '/' . $templateRelativePath);
8888
$header = sprintf(
8989
'# This file is generated automatically - please edit the "%s" template file instead.',
9090
$templateRelativePath
9191
);
9292

93-
$files = [];
93+
$contents = <<<HEADER
94+
$header
95+
$type:
9496
95-
foreach ($versions as $version) {
96-
$filename = sprintf('/generated/%s/' . $outputFormat . '.yml', $directory, $version);
97-
$files[] = '.evergreen/config' . $filename;
98-
99-
$replacements = ['%' . $replacementName . '%' => $version];
97+
HEADER;
10098

101-
file_put_contents(__DIR__ . $filename, $header . "\n" . strtr($template, $replacements));
99+
foreach ($versions as $version) {
100+
$contents .= strtr(
101+
$template,
102+
['%' . $replacementName . '%' => $version],
103+
);
102104
}
103105

104-
return $files;
106+
$filename = '/generated/' . $directory . '/' . $templateFile;
107+
file_put_contents(__DIR__ . $filename, $contents);
108+
109+
return '.evergreen/config' . $filename;
105110
}
106111

.evergreen/config/generated/build/build-libmongoc-8.3.yml renamed to .evergreen/config/generated/build/build-libmongoc.yml

Lines changed: 1 addition & 1 deletion
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 & 9 deletions
This file was deleted.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 commit comments

Comments
 (0)