setup-php 1.11.2 → 1.11.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +433 -458
- package/lib/config.d.ts +3 -0
- package/lib/config.js +71 -71
- package/lib/config.js.map +1 -1
- package/lib/coverage.d.ts +4 -0
- package/lib/coverage.js +97 -87
- package/lib/coverage.js.map +1 -1
- package/lib/extensions.d.ts +4 -0
- package/lib/extensions.js +188 -200
- package/lib/extensions.js.map +1 -1
- package/lib/install.d.ts +2 -0
- package/lib/install.js +96 -81
- package/lib/install.js.map +1 -1
- package/lib/tools.d.ts +18 -0
- package/lib/tools.js +306 -386
- package/lib/tools.js.map +1 -1
- package/lib/utils.d.ts +15 -0
- package/lib/utils.js +205 -291
- package/lib/utils.js.map +1 -1
- package/package.json +66 -56
- package/src/config.ts +82 -82
- package/src/configs/brew_extensions +28 -0
- package/src/configs/php-versions.json +5 -5
- package/src/configs/phpunit.json +24 -24
- package/src/coverage.ts +146 -146
- package/src/extensions.ts +235 -233
- package/src/install.ts +104 -104
- package/src/scripts/darwin.sh +341 -339
- package/src/scripts/ext/gearman.sh +22 -22
- package/src/scripts/ext/phalcon.ps1 +55 -55
- package/src/scripts/ext/phalcon.sh +70 -70
- package/src/scripts/linux.sh +361 -361
- package/src/scripts/win32.ps1 +326 -333
- package/src/tools.ts +472 -469
- package/src/utils.ts +319 -316
- package/.eslintrc.json +0 -16
- package/.github/CODE_OF_CONDUCT.md +0 -76
- package/.github/CONTRIBUTING.md +0 -69
- package/.github/FUNDING.yml +0 -7
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -23
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -38
- package/.github/SECURITY.md +0 -29
- package/.github/workflows/main-workflow.yml +0 -56
- package/.github/workflows/node-workflow.yml +0 -47
- package/.idea/workspace.xml +0 -113
- package/.prettierrc.json +0 -12
- package/__tests__/config.test.ts +0 -52
- package/__tests__/coverage.test.ts +0 -110
- package/__tests__/extensions.test.ts +0 -120
- package/__tests__/install.test.ts +0 -181
- package/__tests__/tools.test.ts +0 -476
- package/__tests__/utils.test.ts +0 -213
- package/action.yml +0 -38
- package/dist/index.js +0 -2854
- package/examples/bedrock.yml +0 -32
- package/examples/cakephp-mysql.yml +0 -114
- package/examples/cakephp-postgres.yml +0 -112
- package/examples/cakephp.yml +0 -92
- package/examples/codeigniter.yml +0 -34
- package/examples/laravel-mysql.yml +0 -74
- package/examples/laravel-postgres.yml +0 -74
- package/examples/laravel.yml +0 -42
- package/examples/lumen-mysql.yml +0 -74
- package/examples/lumen-postgres.yml +0 -74
- package/examples/lumen.yml +0 -38
- package/examples/phalcon-mysql.yml +0 -74
- package/examples/phalcon-postgres.yml +0 -73
- package/examples/sage.yml +0 -57
- package/examples/slim-framework.yml +0 -34
- package/examples/symfony-mysql.yml +0 -56
- package/examples/symfony-postgres.yml +0 -54
- package/examples/symfony.yml +0 -39
- package/examples/yii2-mysql.yml +0 -73
- package/examples/yii2-postgres.yml +0 -71
- package/examples/zend-framework.yml +0 -36
- package/jest.config.js +0 -12
- package/lib/sapi.js +0 -64
- package/tsconfig.json +0 -18
package/src/extensions.ts
CHANGED
|
@@ -1,233 +1,235 @@
|
|
|
1
|
-
import * as path from 'path';
|
|
2
|
-
import * as utils from './utils';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Install and enable extensions for darwin
|
|
6
|
-
*
|
|
7
|
-
* @param extension_csv
|
|
8
|
-
* @param version
|
|
9
|
-
*/
|
|
10
|
-
export async function addExtensionDarwin(
|
|
11
|
-
extension_csv: string,
|
|
12
|
-
version: string
|
|
13
|
-
): Promise<string> {
|
|
14
|
-
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
|
15
|
-
let script = '\n';
|
|
16
|
-
await utils.asyncForEach(extensions, async function (extension: string) {
|
|
17
|
-
const version_extension: string = version + extension;
|
|
18
|
-
const [extension_name, stability]: string[] = extension.split('-');
|
|
19
|
-
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
|
20
|
-
const command_prefix = 'pecl_install ';
|
|
21
|
-
let command = '';
|
|
22
|
-
switch (true) {
|
|
23
|
-
// match pre-release versions
|
|
24
|
-
case /.+-(beta|alpha|devel|snapshot)/.test(extension):
|
|
25
|
-
script +=
|
|
26
|
-
'\nadd_unstable_extension ' +
|
|
27
|
-
extension_name +
|
|
28
|
-
' ' +
|
|
29
|
-
stability +
|
|
30
|
-
' ' +
|
|
31
|
-
ext_prefix;
|
|
32
|
-
return;
|
|
33
|
-
// match 5.6 to 8.0 amqp, grpc, igbinary, imagick, imap, msgpack, pecl_http, propro, protobuf, raphf, rdkafka, redis, swoole, xdebug, xdebug2, zmq
|
|
34
|
-
// match 7.1pcov to 8.0pcov
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
case
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
'
|
|
57
|
-
|
|
58
|
-
'"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// match 7.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
' ' +
|
|
110
|
-
|
|
111
|
-
' ' +
|
|
112
|
-
|
|
113
|
-
'
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* @param
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
' ' +
|
|
150
|
-
|
|
151
|
-
' ' +
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
' ' +
|
|
165
|
-
|
|
166
|
-
' ' +
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
* @param
|
|
199
|
-
* @param
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
case '
|
|
223
|
-
return script + (await
|
|
224
|
-
case '
|
|
225
|
-
return script + (await
|
|
226
|
-
|
|
227
|
-
return await
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
'
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as utils from './utils';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Install and enable extensions for darwin
|
|
6
|
+
*
|
|
7
|
+
* @param extension_csv
|
|
8
|
+
* @param version
|
|
9
|
+
*/
|
|
10
|
+
export async function addExtensionDarwin(
|
|
11
|
+
extension_csv: string,
|
|
12
|
+
version: string
|
|
13
|
+
): Promise<string> {
|
|
14
|
+
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
|
15
|
+
let script = '\n';
|
|
16
|
+
await utils.asyncForEach(extensions, async function (extension: string) {
|
|
17
|
+
const version_extension: string = version + extension;
|
|
18
|
+
const [extension_name, stability]: string[] = extension.split('-');
|
|
19
|
+
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
|
20
|
+
const command_prefix = 'pecl_install ';
|
|
21
|
+
let command = '';
|
|
22
|
+
switch (true) {
|
|
23
|
+
// match pre-release versions
|
|
24
|
+
case /.+-(beta|alpha|devel|snapshot)/.test(extension):
|
|
25
|
+
script +=
|
|
26
|
+
'\nadd_unstable_extension ' +
|
|
27
|
+
extension_name +
|
|
28
|
+
' ' +
|
|
29
|
+
stability +
|
|
30
|
+
' ' +
|
|
31
|
+
ext_prefix;
|
|
32
|
+
return;
|
|
33
|
+
// match 5.6 to 8.0 amqp, expect, grpc, igbinary, imagick, imap, mongodb, msgpack, pecl_http, propro, protobuf, raphf, rdkafka, redis, ssh2, swoole, xdebug, xdebug2, yaml, zmq
|
|
34
|
+
// match 7.1pcov to 8.0pcov
|
|
35
|
+
// match 7.0vips to 8.0vips
|
|
36
|
+
case /(5\.6|7\.[0-4]|8.0)(amqp|expect|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|ssh2|swoole|xdebug|xdebug2|yaml|zmq)/.test(
|
|
37
|
+
version_extension
|
|
38
|
+
):
|
|
39
|
+
case /(7\.[1-4]|8\.0])pcov/.test(version_extension):
|
|
40
|
+
case /^(5\.6|7\.[0-3])phalcon3$|^7\.[2-4]phalcon4$/.test(
|
|
41
|
+
version_extension
|
|
42
|
+
):
|
|
43
|
+
case /(7\.[0-4]|8\.0])vips/.test(version_extension):
|
|
44
|
+
command = 'add_brew_extension ' + extension_name.replace('pecl_', '');
|
|
45
|
+
break;
|
|
46
|
+
// match sqlite
|
|
47
|
+
case /^sqlite$/.test(extension):
|
|
48
|
+
extension = 'sqlite3';
|
|
49
|
+
command = command_prefix + extension;
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
command = command_prefix + extension;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
script +=
|
|
56
|
+
'\nadd_extension ' +
|
|
57
|
+
extension +
|
|
58
|
+
' "' +
|
|
59
|
+
command +
|
|
60
|
+
'" ' +
|
|
61
|
+
(await utils.getExtensionPrefix(extension));
|
|
62
|
+
});
|
|
63
|
+
return script;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Install and enable extensions for windows
|
|
68
|
+
*
|
|
69
|
+
* @param extension_csv
|
|
70
|
+
* @param version
|
|
71
|
+
*/
|
|
72
|
+
export async function addExtensionWindows(
|
|
73
|
+
extension_csv: string,
|
|
74
|
+
version: string
|
|
75
|
+
): Promise<string> {
|
|
76
|
+
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
|
77
|
+
let script = '\n';
|
|
78
|
+
await utils.asyncForEach(extensions, async function (extension: string) {
|
|
79
|
+
const [extension_name, stability]: string[] = extension.split('-');
|
|
80
|
+
const version_extension: string = version + extension;
|
|
81
|
+
switch (true) {
|
|
82
|
+
// match pre-release versions
|
|
83
|
+
case /.+-(beta|alpha|devel|snapshot)/.test(extension):
|
|
84
|
+
script += '\nAdd-Extension ' + extension_name + ' ' + stability;
|
|
85
|
+
break;
|
|
86
|
+
// match 5.6mysql, 5.6mysqli, 5.6mysqlnd
|
|
87
|
+
case /^5\.6(mysql|mysqli|mysqlnd)$/.test(version_extension):
|
|
88
|
+
script +=
|
|
89
|
+
'\nAdd-Extension mysql\nAdd-Extension mysqli\nAdd-Extension mysqlnd';
|
|
90
|
+
break;
|
|
91
|
+
// match 7.2xdebug2 to 7.4xdebug2
|
|
92
|
+
case /7\.[2-4]xdebug2/.test(version_extension):
|
|
93
|
+
script += '\nAdd-Extension xdebug stable 2.9.8';
|
|
94
|
+
break;
|
|
95
|
+
// match 7.0mysql..8.0mysql
|
|
96
|
+
// match 7.0mysqli..8.0mysqli
|
|
97
|
+
// match 7.0mysqlnd..8.0mysqlnd
|
|
98
|
+
case /[7-8]\.\d(mysql|mysqli|mysqlnd)$/.test(version_extension):
|
|
99
|
+
script += '\nAdd-Extension mysqli\nAdd-Extension mysqlnd';
|
|
100
|
+
break;
|
|
101
|
+
// match sqlite
|
|
102
|
+
case /^sqlite$/.test(extension):
|
|
103
|
+
extension = 'sqlite3';
|
|
104
|
+
script += '\nAdd-Extension ' + extension;
|
|
105
|
+
break;
|
|
106
|
+
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
|
107
|
+
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
|
108
|
+
script +=
|
|
109
|
+
'\n& ' +
|
|
110
|
+
path.join(__dirname, '../src/scripts/ext/phalcon.ps1') +
|
|
111
|
+
' ' +
|
|
112
|
+
extension +
|
|
113
|
+
' ' +
|
|
114
|
+
version +
|
|
115
|
+
'\n';
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
script += '\nAdd-Extension ' + extension;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return script;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Install and enable extensions for linux
|
|
127
|
+
*
|
|
128
|
+
* @param extension_csv
|
|
129
|
+
* @param version
|
|
130
|
+
* @param pipe
|
|
131
|
+
*/
|
|
132
|
+
export async function addExtensionLinux(
|
|
133
|
+
extension_csv: string,
|
|
134
|
+
version: string,
|
|
135
|
+
pipe: string
|
|
136
|
+
): Promise<string> {
|
|
137
|
+
const extensions: Array<string> = await utils.extensionArray(extension_csv);
|
|
138
|
+
let script = '\n';
|
|
139
|
+
await utils.asyncForEach(extensions, async function (extension: string) {
|
|
140
|
+
const version_extension: string = version + extension;
|
|
141
|
+
const [extension_name, stability]: string[] = extension.split('-');
|
|
142
|
+
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
|
143
|
+
const command_prefix = 'sudo $debconf_fix apt-get install -y php';
|
|
144
|
+
let command = '';
|
|
145
|
+
switch (true) {
|
|
146
|
+
// match pre-release versions
|
|
147
|
+
case /.+-(beta|alpha|devel|snapshot)/.test(extension):
|
|
148
|
+
script +=
|
|
149
|
+
'\nadd_unstable_extension ' +
|
|
150
|
+
extension_name +
|
|
151
|
+
' ' +
|
|
152
|
+
stability +
|
|
153
|
+
' ' +
|
|
154
|
+
ext_prefix;
|
|
155
|
+
return;
|
|
156
|
+
// match 5.6gearman..7.4gearman
|
|
157
|
+
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
|
158
|
+
script +=
|
|
159
|
+
'\n. ' + path.join(__dirname, '../src/scripts/ext/gearman.sh');
|
|
160
|
+
return;
|
|
161
|
+
// match 7.0phalcon3...7.3phalcon3 or 7.2phalcon4...7.4phalcon4
|
|
162
|
+
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
|
163
|
+
script +=
|
|
164
|
+
'\nbash ' +
|
|
165
|
+
path.join(__dirname, '../src/scripts/ext/phalcon.sh') +
|
|
166
|
+
' ' +
|
|
167
|
+
extension +
|
|
168
|
+
' ' +
|
|
169
|
+
version;
|
|
170
|
+
return;
|
|
171
|
+
// match 7.2xdebug2 to 7.4xdebug2
|
|
172
|
+
case /^7\.[2-4]xdebug2$/.test(version_extension):
|
|
173
|
+
script += '\nadd_pecl_extension xdebug 2.9.8 ' + ext_prefix;
|
|
174
|
+
return;
|
|
175
|
+
// match sqlite
|
|
176
|
+
case /^sqlite$/.test(extension):
|
|
177
|
+
extension = 'sqlite3';
|
|
178
|
+
command = command_prefix + version + '-' + extension + pipe;
|
|
179
|
+
break;
|
|
180
|
+
default:
|
|
181
|
+
command =
|
|
182
|
+
command_prefix +
|
|
183
|
+
version +
|
|
184
|
+
'-' +
|
|
185
|
+
extension.replace('pdo_', '').replace('pdo-', '') +
|
|
186
|
+
pipe;
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
script +=
|
|
190
|
+
'\nadd_extension ' + extension + ' "' + command + '" ' + ext_prefix;
|
|
191
|
+
});
|
|
192
|
+
return script;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Install and enable extensions
|
|
197
|
+
*
|
|
198
|
+
* @param extension_csv
|
|
199
|
+
* @param version
|
|
200
|
+
* @param os_version
|
|
201
|
+
* @param no_step
|
|
202
|
+
*/
|
|
203
|
+
export async function addExtension(
|
|
204
|
+
extension_csv: string,
|
|
205
|
+
version: string,
|
|
206
|
+
os_version: string,
|
|
207
|
+
no_step = false
|
|
208
|
+
): Promise<string> {
|
|
209
|
+
const pipe: string = await utils.suppressOutput(os_version);
|
|
210
|
+
let script = '\n';
|
|
211
|
+
switch (no_step) {
|
|
212
|
+
case true:
|
|
213
|
+
script += (await utils.stepLog('Setup Extensions', os_version)) + pipe;
|
|
214
|
+
break;
|
|
215
|
+
case false:
|
|
216
|
+
default:
|
|
217
|
+
script += await utils.stepLog('Setup Extensions', os_version);
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
switch (os_version) {
|
|
222
|
+
case 'win32':
|
|
223
|
+
return script + (await addExtensionWindows(extension_csv, version));
|
|
224
|
+
case 'darwin':
|
|
225
|
+
return script + (await addExtensionDarwin(extension_csv, version));
|
|
226
|
+
case 'linux':
|
|
227
|
+
return script + (await addExtensionLinux(extension_csv, version, pipe));
|
|
228
|
+
default:
|
|
229
|
+
return await utils.log(
|
|
230
|
+
'Platform ' + os_version + ' is not supported',
|
|
231
|
+
os_version,
|
|
232
|
+
'error'
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|