|
1 | 1 | <?php |
2 | 2 |
|
3 | 3 | const BRANCHES = [ |
4 | | - ['name' => 'master', 'ref' => 'master', 'version' => ['major' => 8, 'minor' => 5]], |
5 | | - ['name' => 'PHP-8.4', 'ref' => 'PHP-8.4', 'version' => ['major' => 8, 'minor' => 4]], |
6 | | - ['name' => 'PHP-8.3', 'ref' => 'PHP-8.3', 'version' => ['major' => 8, 'minor' => 3]], |
7 | | - ['name' => 'PHP-8.2', 'ref' => 'PHP-8.2', 'version' => ['major' => 8, 'minor' => 2]], |
8 | | - ['name' => 'PHP-8.1', 'ref' => 'PHP-8.1', 'version' => ['major' => 8, 'minor' => 1]], |
| 4 | + ['ref' => 'master', 'version' => [8, 5]], |
| 5 | + ['ref' => 'PHP-8.4', 'version' => [8, 4]], |
| 6 | + ['ref' => 'PHP-8.3', 'version' => [8, 3]], |
| 7 | + ['ref' => 'PHP-8.2', 'version' => [8, 2]], |
| 8 | + ['ref' => 'PHP-8.1', 'version' => [8, 1]], |
9 | 9 | ]; |
10 | 10 |
|
11 | 11 | function get_branch_commit_cache_file_path(): string { |
@@ -36,142 +36,30 @@ function get_branches() { |
36 | 36 | return $changed_branches; |
37 | 37 | } |
38 | 38 |
|
39 | | -function get_matrix_include(array $branches) { |
40 | | - $jobs = []; |
41 | | - foreach ($branches as $branch) { |
42 | | - $jobs[] = [ |
43 | | - 'name' => '_ASAN_UBSAN', |
44 | | - 'branch' => $branch, |
45 | | - 'debug' => true, |
46 | | - 'zts' => true, |
47 | | - 'configuration_parameters' => "CFLAGS='-fsanitize=undefined,address -DZEND_TRACK_ARENA_ALLOC' LDFLAGS='-fsanitize=undefined,address'", |
48 | | - 'run_tests_parameters' => '--asan', |
49 | | - 'test_function_jit' => false, |
50 | | - 'asan' => true, |
51 | | - ]; |
52 | | - $jobs[] = [ |
53 | | - 'name' => '_REPEAT', |
54 | | - 'branch' => $branch, |
55 | | - 'debug' => true, |
56 | | - 'zts' => false, |
57 | | - 'run_tests_parameters' => '--repeat 2', |
58 | | - 'timeout_minutes' => 360, |
59 | | - 'test_function_jit' => true, |
60 | | - 'asan' => false, |
61 | | - ]; |
62 | | - $jobs[] = [ |
63 | | - 'name' => '_VARIATION', |
64 | | - 'branch' => $branch, |
65 | | - 'debug' => true, |
66 | | - 'zts' => true, |
67 | | - 'configuration_parameters' => "CFLAGS='-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1 -DZEND_VERIFY_TYPE_INFERENCE'", |
68 | | - 'run_tests_parameters' => '-d zend_test.observer.enabled=1 -d zend_test.observer.show_output=0', |
69 | | - 'timeout_minutes' => 360, |
70 | | - 'test_function_jit' => true, |
71 | | - 'asan' => false, |
72 | | - ]; |
73 | | - } |
74 | | - return $jobs; |
75 | | -} |
76 | | - |
77 | | -function get_windows_matrix_include(array $branches) { |
78 | | - $jobs = []; |
79 | | - foreach ($branches as $branch) { |
80 | | - $jobs[] = [ |
81 | | - 'branch' => $branch, |
82 | | - 'x64' => true, |
83 | | - 'zts' => true, |
84 | | - 'opcache' => true, |
85 | | - ]; |
86 | | - $jobs[] = [ |
87 | | - 'branch' => $branch, |
88 | | - 'x64' => false, |
89 | | - 'zts' => false, |
90 | | - 'opcache' => false, |
91 | | - ]; |
92 | | - } |
93 | | - return $jobs; |
94 | | -} |
95 | | - |
96 | | -function get_macos_matrix_include(array $branches) { |
97 | | - $jobs = []; |
98 | | - foreach ($branches as $branch) { |
99 | | - foreach([true, false] as $debug) { |
100 | | - foreach([true, false] as $zts) { |
101 | | - $jobs[] = [ |
102 | | - 'branch' => $branch, |
103 | | - 'debug' => $debug, |
104 | | - 'zts' => $zts, |
105 | | - 'os' => in_array($branch['name'], ['master', 'PHP-8.4'], true) ? '13' : '12', |
106 | | - 'arch' => 'X64', |
107 | | - 'test_jit' => true, |
108 | | - ]; |
109 | | - if ($branch['version']['minor'] >= 4 || $branch['version']['major'] >= 9) { |
110 | | - $jobs[] = [ |
111 | | - 'branch' => $branch, |
112 | | - 'debug' => $debug, |
113 | | - 'zts' => $zts, |
114 | | - 'os' => '14', |
115 | | - 'arch' => 'ARM64', |
116 | | - 'test_jit' => !$zts, |
117 | | - ]; |
118 | | - } |
119 | | - } |
120 | | - } |
121 | | - } |
122 | | - return $jobs; |
123 | | -} |
124 | | - |
125 | | -function get_alpine_matrix_include(array $branches) { |
126 | | - $jobs = []; |
127 | | - foreach ($branches as $branch) { |
128 | | - if ([$branch['version']['major'], $branch['version']['minor']] < [8, 4]) { |
129 | | - continue; |
130 | | - } |
131 | | - $jobs[] = [ |
132 | | - 'name' => '_ASAN_UBSAN', |
133 | | - 'branch' => $branch, |
134 | | - 'debug' => true, |
135 | | - 'zts' => true, |
136 | | - 'asan' => true, |
137 | | - 'test_jit' => true, |
138 | | - 'configuration_parameters' => "CFLAGS='-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC' LDFLAGS='-fsanitize=undefined,address -fno-sanitize=function' CC=clang-17 CXX=clang++-17", |
139 | | - 'run_tests_parameters' => '--asan -x', |
140 | | - ]; |
141 | | - } |
142 | | - return $jobs; |
143 | | -} |
144 | | - |
145 | 39 | function get_current_version(): array { |
146 | 40 | $file = dirname(__DIR__) . '/main/php_version.h'; |
147 | 41 | $content = file_get_contents($file); |
148 | 42 | preg_match('(^#define PHP_MAJOR_VERSION (?<num>\d+)$)m', $content, $matches); |
149 | | - $major = $matches['num']; |
| 43 | + $major = (int) $matches['num']; |
150 | 44 | preg_match('(^#define PHP_MINOR_VERSION (?<num>\d+)$)m', $content, $matches); |
151 | | - $minor = $matches['num']; |
152 | | - return ['major' => $major, 'minor' => $minor]; |
| 45 | + $minor = (int) $matches['num']; |
| 46 | + return [$major, $minor]; |
153 | 47 | } |
154 | 48 |
|
155 | 49 | $trigger = $argv[1] ?? 'schedule'; |
156 | 50 | $attempt = (int) ($argv[2] ?? 1); |
157 | | -$discard_cache = ($trigger === 'schedule' && $attempt !== 1) || $trigger === 'workflow_dispatch'; |
| 51 | +$monday = date('w', time()) === '1'; |
| 52 | +$discard_cache = $monday |
| 53 | + || ($trigger === 'schedule' && $attempt !== 1) |
| 54 | + || $trigger === 'workflow_dispatch'; |
158 | 55 | if ($discard_cache) { |
159 | 56 | @unlink(get_branch_commit_cache_file_path()); |
160 | 57 | } |
161 | 58 | $branch = $argv[3] ?? 'master'; |
162 | | - |
163 | 59 | $branches = $branch === 'master' |
164 | 60 | ? get_branches() |
165 | | - : [['name' => strtoupper($branch), 'ref' => $branch, 'version' => get_current_version()]]; |
166 | | -$matrix_include = get_matrix_include($branches); |
167 | | -$windows_matrix_include = get_windows_matrix_include($branches); |
168 | | -$macos_matrix_include = get_macos_matrix_include($branches); |
169 | | -$alpine_matrix_include = get_alpine_matrix_include($branches); |
| 61 | + : [['ref' => $branch, 'version' => get_current_version()]]; |
170 | 62 |
|
171 | 63 | $f = fopen(getenv('GITHUB_OUTPUT'), 'a'); |
172 | 64 | fwrite($f, 'branches=' . json_encode($branches, JSON_UNESCAPED_SLASHES) . "\n"); |
173 | | -fwrite($f, 'matrix-include=' . json_encode($matrix_include, JSON_UNESCAPED_SLASHES) . "\n"); |
174 | | -fwrite($f, 'windows-matrix-include=' . json_encode($windows_matrix_include, JSON_UNESCAPED_SLASHES) . "\n"); |
175 | | -fwrite($f, 'macos-matrix-include=' . json_encode($macos_matrix_include, JSON_UNESCAPED_SLASHES) . "\n"); |
176 | | -fwrite($f, 'alpine-matrix-include=' . json_encode($alpine_matrix_include, JSON_UNESCAPED_SLASHES) . "\n"); |
177 | 65 | fclose($f); |
0 commit comments