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