|
57 | 57 | $allFiles = []; |
58 | 58 |
|
59 | 59 | // Build tasks |
60 | | -$allFiles[] = generateConfigs('build', 'phpVersion', 'build-php.yml', 'build-php-%s', $supportedPhpVersions); |
61 | | -$allFiles[] = generateConfigs('build', 'phpVersion', 'build-libmongoc.yml', 'build-libmongoc-%s', $libmongocBuildPhpVersions); |
| 60 | +$allFiles[] = generateConfigs('tasks', 'build', 'phpVersion', 'build-php.yml', $supportedPhpVersions); |
| 61 | +$allFiles[] = generateConfigs('tasks', 'build', 'phpVersion', 'build-libmongoc.yml', $libmongocBuildPhpVersions); |
62 | 62 |
|
63 | 63 | // Test tasks |
64 | | -$allFiles[] = generateConfigs('test', 'mongodbVersion', 'local.yml', 'local-%s', $localServerVersions); |
65 | | -$allFiles[] = generateConfigs('test', 'mongodbVersion', 'load-balanced.yml', 'load-balanced-%s', $loadBalancedServerVersions); |
66 | | -$allFiles[] = generateConfigs('test', 'mongodbVersion', 'ocsp.yml', 'ocsp-%s', $ocspServerVersions); |
67 | | -$allFiles[] = generateConfigs('test', 'mongodbVersion', 'require-api-version.yml', 'require-api-version-%s', $requireApiServerVersions); |
68 | | -$allFiles[] = generateConfigs('test', 'mongodbVersion', 'skip-crypt-shared.yml', 'skip-crypt-shared-%s', $skipCryptSharedServerVersions); |
| 64 | +$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'local.yml', $localServerVersions); |
| 65 | +$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'load-balanced.yml', $loadBalancedServerVersions); |
| 66 | +$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'ocsp.yml', $ocspServerVersions); |
| 67 | +$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'require-api-version.yml', $requireApiServerVersions); |
| 68 | +$allFiles[] = generateConfigs('tasks', 'test', 'mongodbVersion', 'skip-crypt-shared.yml', $skipCryptSharedServerVersions); |
69 | 69 |
|
70 | 70 | // Test variants |
71 | | -$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'modern-php-full.yml', 'full-php-%s', $modernPhpVersions); |
72 | | -$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'legacy-php-full.yml', 'full-php-%s', $legacyPhpVersions); |
73 | | -$allFiles[] = generateConfigs('test-variant', 'phpVersion', 'libmongoc.yml', 'libmongoc-php-%s', [$latestPhpVersion]); |
| 71 | +$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'modern-php-full.yml', $modernPhpVersions); |
| 72 | +$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'legacy-php-full.yml', $legacyPhpVersions); |
| 73 | +$allFiles[] = generateConfigs('buildvariants', 'test-variant', 'phpVersion', 'libmongoc.yml', [$latestPhpVersion]); |
74 | 74 |
|
75 | 75 | echo "Generated config. Use the following list to import files:\n"; |
76 | | -echo implode("\n", array_map('getImportConfig', array_merge(...$allFiles))) . "\n"; |
| 76 | +echo implode("\n", array_map('getImportConfig', $allFiles)) . "\n"; |
77 | 77 |
|
78 | 78 | function getImportConfig(string $filename): string |
79 | 79 | { |
80 | 80 | return '- filename: ' . $filename; |
81 | 81 | } |
82 | 82 |
|
83 | 83 | function generateConfigs( |
| 84 | + string $type, |
84 | 85 | string $directory, |
85 | 86 | string $replacementName, |
86 | 87 | string $templateFile, |
87 | | - string $outputFormat, |
88 | 88 | array $versions, |
89 | | -): array { |
| 89 | +): string { |
90 | 90 | $templateRelativePath = 'templates/' . $directory . '/' . $templateFile; |
91 | 91 | $template = file_get_contents(__DIR__ . '/' . $templateRelativePath); |
92 | 92 | $header = sprintf( |
93 | 93 | '# This file is generated automatically - please edit the "%s" template file instead.', |
94 | 94 | $templateRelativePath |
95 | 95 | ); |
96 | 96 |
|
97 | | - $files = []; |
| 97 | + $contents = <<<HEADER |
| 98 | +$header |
| 99 | +$type: |
98 | 100 |
|
99 | | - foreach ($versions as $version) { |
100 | | - $filename = sprintf('/generated/%s/' . $outputFormat . '.yml', $directory, $version); |
101 | | - $files[] = '.evergreen/config' . $filename; |
102 | | - |
103 | | - $replacements = ['%' . $replacementName . '%' => $version]; |
| 101 | +HEADER; |
104 | 102 |
|
105 | | - file_put_contents(__DIR__ . $filename, $header . "\n" . strtr($template, $replacements)); |
| 103 | + foreach ($versions as $version) { |
| 104 | + $contents .= strtr( |
| 105 | + $template, |
| 106 | + ['%' . $replacementName . '%' => $version], |
| 107 | + ); |
106 | 108 | } |
107 | 109 |
|
108 | | - return $files; |
| 110 | + $filename = '/generated/' . $directory . '/' . $templateFile; |
| 111 | + file_put_contents(__DIR__ . $filename, $contents); |
| 112 | + |
| 113 | + return '.evergreen/config' . $filename; |
109 | 114 | } |
110 | 115 |
|
0 commit comments