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