@@ -26,7 +26,11 @@ function check_source_ver(string $expect_ver, $source_file)
26
26
27
27
// auto fixed sub version values
28
28
if (strpos ($ source_content , 'SWOOLE_MAJOR_VERSION ' ) !== false ) {
29
- list ($ major , $ minor , $ release , $ extra ) = preg_split ('/[.-]/ ' , $ source_ver , 4 );
29
+ $ version_parts = array_values (array_filter (preg_split ('/(?:\b)|(?:(?<=[0-9])(?=[a-zA-Z]))/ ' ,
30
+ $ source_ver ), function (string $ char ) {
31
+ return preg_match ('/[0-9a-zA-Z]/ ' , $ char );
32
+ }));
33
+ list ($ major , $ minor , $ release , $ extra ) = $ version_parts ;
30
34
$ source_content = preg_replace (
31
35
'/^(\#define[ ]+SWOOLE_VERSION_ID[ ]+)\d+$/m ' ,
32
36
'${1} ' . sprintf ('%d%02d%02d ' , $ major , $ minor , $ release ),
@@ -96,7 +100,7 @@ function check_source_ver(string $expect_ver, $source_file)
96
100
$ root_dir = SWOOLE_SOURCE_ROOT ;
97
101
98
102
// check version definitions
99
- $ package_ver_regex = '/<version>\s+<release>(?<release_v>\d+?\.\d+?\.\d+?) <\/release>\s+<api>(?<api_v>\d+?\.\d+?)<\/api>\s+<\/version>\s+<stability>\s+<release>(?<release_s>[a-z]+?)<\/release>\s+<api>(?<api_s>[a-z]+?)<\/api>\s+<\/stability>/ ' ;
103
+ $ package_ver_regex = '/<version>\s+<release>(?<release_v>\d+?\.\d+?\.\d+?(?:-?(?:alpine|beta|rc\d*?))?) <\/release>\s+<api>(?<api_v>\d+?\.\d+?)<\/api>\s+<\/version>\s+<stability>\s+<release>(?<release_s>[a-z]+?)<\/release>\s+<api>(?<api_s>[a-z]+?)<\/api>\s+<\/stability>/i ' ;
100
104
preg_match ($ package_ver_regex , file_get_contents (__DIR__ . '/../package.xml ' ), $ matches );
101
105
$ package_release_ver = $ matches ['release_v ' ];
102
106
$ package_api_ver = $ matches ['api_v ' ];
@@ -186,7 +190,7 @@ function check_source_ver(string $expect_ver, $source_file)
186
190
swoole_error ('Replace time tag failed! ' );
187
191
}
188
192
if (!file_put_contents (__DIR__ . '/../package.xml ' , $ content )) {
189
- swoole_error ('Output package successful ! ' );
193
+ swoole_error ('Output package.xml failed ! ' );
190
194
}
191
195
$ package = trim (`cd {$ root_dir } && pecl package `);
192
196
if (preg_match ('/Warning/i ' , $ package )) {
@@ -196,7 +200,7 @@ function check_source_ver(string $expect_ver, $source_file)
196
200
swoole_log ("{$ warn }\n" , SWOOLE_COLOR_MAGENTA );
197
201
}
198
202
// check package status
199
- if (!preg_match ('/Package (?<filename>swoole-[\d.]+\ .tgz) done/ ' , $ package , $ matches )) {
203
+ if (!preg_match ('/Package (?<filename>swoole-.+? .tgz) done/ ' , $ package , $ matches )) {
200
204
swoole_error ($ package );
201
205
} else {
202
206
$ file_name = $ matches ['filename ' ];
0 commit comments