setup-php 2.16.0 → 2.18.0

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 (81) hide show
  1. package/README.md +159 -141
  2. package/lib/config.d.ts +3 -0
  3. package/lib/config.js +76 -0
  4. package/lib/config.js.map +1 -0
  5. package/lib/coverage.d.ts +5 -0
  6. package/lib/coverage.js +102 -0
  7. package/lib/coverage.js.map +1 -0
  8. package/lib/extensions.d.ts +4 -0
  9. package/lib/extensions.js +219 -0
  10. package/lib/extensions.js.map +1 -0
  11. package/lib/fetch.d.ts +1 -0
  12. package/lib/fetch.js +67 -0
  13. package/lib/fetch.js.map +1 -0
  14. package/lib/install.d.ts +2 -0
  15. package/lib/install.js +80 -0
  16. package/lib/install.js.map +1 -0
  17. package/lib/tools.d.ts +23 -0
  18. package/lib/tools.js +378 -0
  19. package/lib/tools.js.map +1 -0
  20. package/lib/utils.d.ts +21 -0
  21. package/lib/utils.js +266 -0
  22. package/lib/utils.js.map +1 -0
  23. package/package.json +21 -20
  24. package/src/config.ts +8 -8
  25. package/src/configs/brew_extensions +1 -0
  26. package/src/configs/composer.env +2 -0
  27. package/src/configs/ini/jit.ini +3 -0
  28. package/src/configs/ini/php.ini +2 -0
  29. package/src/configs/ini/xdebug.ini +1 -0
  30. package/src/configs/os_releases.csv +2 -0
  31. package/src/configs/php_packages +12 -0
  32. package/src/configs/tools.json +48 -26
  33. package/src/configs/tools_schema.json +11 -0
  34. package/src/coverage.ts +24 -49
  35. package/src/extensions.ts +28 -24
  36. package/src/fetch.ts +54 -0
  37. package/src/install.ts +28 -41
  38. package/src/scripts/darwin.sh +81 -33
  39. package/src/scripts/extensions/add_extensions.ps1 +194 -0
  40. package/src/scripts/extensions/add_extensions.sh +198 -0
  41. package/src/scripts/{ext → extensions}/blackfire.ps1 +0 -0
  42. package/src/scripts/{ext → extensions}/blackfire.sh +0 -0
  43. package/src/scripts/{ext → extensions}/couchbase.sh +0 -0
  44. package/src/scripts/{ext → extensions}/cubrid.sh +3 -3
  45. package/src/scripts/{ext → extensions}/extension_map.php +36 -13
  46. package/src/scripts/{ext → extensions}/firebird.ps1 +0 -0
  47. package/src/scripts/{ext → extensions}/firebird.sh +0 -0
  48. package/src/scripts/{ext → extensions}/gearman.sh +0 -0
  49. package/src/scripts/{ext → extensions}/geos.sh +0 -0
  50. package/src/scripts/{ext → extensions}/http.ps1 +1 -0
  51. package/src/scripts/{ext → extensions}/http.sh +13 -20
  52. package/src/scripts/{ext → extensions}/intl.sh +0 -0
  53. package/src/scripts/{ext → extensions}/ioncube.ps1 +2 -2
  54. package/src/scripts/{ext → extensions}/ioncube.sh +2 -2
  55. package/src/scripts/{ext → extensions}/oci.ps1 +39 -14
  56. package/src/scripts/{ext → extensions}/oci.sh +3 -3
  57. package/src/scripts/{ext → extensions}/patches/firebird.sh +0 -0
  58. package/src/scripts/{ext → extensions}/patches/geos.sh +0 -0
  59. package/src/scripts/{ext → extensions}/patches/http.sh +0 -0
  60. package/src/scripts/{ext → extensions}/patches/pdo_oci.sh +0 -0
  61. package/src/scripts/{ext → extensions}/patches/phpize.sh +0 -0
  62. package/src/scripts/{ext → extensions}/patches/protobuf.sh +0 -0
  63. package/src/scripts/{ext → extensions}/phalcon.ps1 +0 -0
  64. package/src/scripts/{ext → extensions}/phalcon.sh +4 -5
  65. package/src/scripts/{ext → extensions}/source.sh +36 -22
  66. package/src/scripts/extensions/sqlsrv.sh +15 -0
  67. package/src/scripts/linux.sh +76 -36
  68. package/src/scripts/tools/add_tools.ps1 +220 -10
  69. package/src/scripts/tools/add_tools.sh +164 -17
  70. package/src/scripts/tools/grpc_php_plugin.ps1 +4 -4
  71. package/src/scripts/tools/grpc_php_plugin.sh +3 -3
  72. package/src/scripts/tools/ppa.sh +12 -9
  73. package/src/scripts/tools/protoc.ps1 +2 -2
  74. package/src/scripts/tools/protoc.sh +2 -2
  75. package/src/scripts/tools/symfony.ps1 +18 -0
  76. package/src/scripts/tools/symfony.sh +18 -0
  77. package/src/scripts/unix.sh +186 -0
  78. package/src/scripts/win32.ps1 +137 -336
  79. package/src/tools.ts +62 -82
  80. package/src/utils.ts +57 -145
  81. package/src/scripts/common.sh +0 -366
package/lib/utils.js ADDED
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.parseExtensionSource = exports.customPackage = exports.scriptTool = exports.scriptExtension = exports.joins = exports.getCommand = exports.getUnsupportedLog = exports.suppressOutput = exports.getExtensionPrefix = exports.CSVArray = exports.extensionArray = exports.addLog = exports.stepLog = exports.log = exports.color = exports.asyncForEach = exports.parseIniFile = exports.parseVersion = exports.getManifestURL = exports.getInput = exports.readEnv = void 0;
27
+ const path = __importStar(require("path"));
28
+ const core = __importStar(require("@actions/core"));
29
+ const fetch = __importStar(require("./fetch"));
30
+ async function readEnv(property) {
31
+ const property_lc = property.toLowerCase();
32
+ const property_uc = property.toUpperCase();
33
+ return (process.env[property] ||
34
+ process.env[property_lc] ||
35
+ process.env[property_uc] ||
36
+ process.env[property_lc.replace('_', '-')] ||
37
+ process.env[property_uc.replace('_', '-')] ||
38
+ '');
39
+ }
40
+ exports.readEnv = readEnv;
41
+ async function getInput(name, mandatory) {
42
+ const input = core.getInput(name);
43
+ const env_input = await readEnv(name);
44
+ switch (true) {
45
+ case input != '':
46
+ return input;
47
+ case input == '' && env_input != '':
48
+ return env_input;
49
+ case input == '' && env_input == '' && mandatory:
50
+ throw new Error(`Input required and not supplied: ${name}`);
51
+ default:
52
+ return '';
53
+ }
54
+ }
55
+ exports.getInput = getInput;
56
+ async function getManifestURL() {
57
+ return 'https://raw.githubusercontent.com/shivammathur/setup-php/develop/src/configs/php-versions.json';
58
+ }
59
+ exports.getManifestURL = getManifestURL;
60
+ async function parseVersion(version) {
61
+ const manifest = await getManifestURL();
62
+ switch (true) {
63
+ case /^(latest|nightly|\d+\.x)$/.test(version):
64
+ return JSON.parse((await fetch.fetch(manifest))['data'])[version];
65
+ default:
66
+ switch (true) {
67
+ case version.length > 1:
68
+ return version.slice(0, 3);
69
+ default:
70
+ return version + '.0';
71
+ }
72
+ }
73
+ }
74
+ exports.parseVersion = parseVersion;
75
+ async function parseIniFile(ini_file) {
76
+ switch (true) {
77
+ case /^(production|development|none)$/.test(ini_file):
78
+ return ini_file;
79
+ case /php\.ini-(production|development)$/.test(ini_file):
80
+ return ini_file.split('-')[1];
81
+ default:
82
+ return 'production';
83
+ }
84
+ }
85
+ exports.parseIniFile = parseIniFile;
86
+ async function asyncForEach(array, callback) {
87
+ for (let index = 0; index < array.length; index++) {
88
+ await callback(array[index], index, array);
89
+ }
90
+ }
91
+ exports.asyncForEach = asyncForEach;
92
+ async function color(type) {
93
+ switch (type) {
94
+ case 'error':
95
+ return '31';
96
+ default:
97
+ case 'success':
98
+ return '32';
99
+ case 'warning':
100
+ return '33';
101
+ }
102
+ }
103
+ exports.color = color;
104
+ async function log(message, os, log_type) {
105
+ switch (os) {
106
+ case 'win32':
107
+ return ('printf "\\033[' +
108
+ (await color(log_type)) +
109
+ ';1m' +
110
+ message +
111
+ ' \\033[0m"');
112
+ case 'linux':
113
+ case 'darwin':
114
+ default:
115
+ return ('echo "\\033[' + (await color(log_type)) + ';1m' + message + '\\033[0m"');
116
+ }
117
+ }
118
+ exports.log = log;
119
+ async function stepLog(message, os) {
120
+ switch (os) {
121
+ case 'win32':
122
+ return 'Step-Log "' + message + '"';
123
+ case 'linux':
124
+ case 'darwin':
125
+ return 'step_log "' + message + '"';
126
+ default:
127
+ return await log('Platform ' + os + ' is not supported', os, 'error');
128
+ }
129
+ }
130
+ exports.stepLog = stepLog;
131
+ async function addLog(mark, subject, message, os) {
132
+ switch (os) {
133
+ case 'win32':
134
+ return 'Add-Log "' + mark + '" "' + subject + '" "' + message + '"';
135
+ case 'linux':
136
+ case 'darwin':
137
+ return 'add_log "' + mark + '" "' + subject + '" "' + message + '"';
138
+ default:
139
+ return await log('Platform ' + os + ' is not supported', os, 'error');
140
+ }
141
+ }
142
+ exports.addLog = addLog;
143
+ async function extensionArray(extension_csv) {
144
+ switch (extension_csv) {
145
+ case '':
146
+ case ' ':
147
+ return [];
148
+ default:
149
+ return [
150
+ extension_csv.match(/(^|,\s?)none(\s?,|$)/) ? 'none' : '',
151
+ ...extension_csv
152
+ .split(',')
153
+ .map(function (extension) {
154
+ if (/.+-.+\/.+@.+/.test(extension)) {
155
+ return extension;
156
+ }
157
+ return extension
158
+ .trim()
159
+ .toLowerCase()
160
+ .replace(/^(:)?(php[-_]|none|zend )|(-[^-]*)-/, '$1$3');
161
+ })
162
+ ].filter(Boolean);
163
+ }
164
+ }
165
+ exports.extensionArray = extensionArray;
166
+ async function CSVArray(values_csv) {
167
+ switch (values_csv) {
168
+ case '':
169
+ case ' ':
170
+ return [];
171
+ default:
172
+ return values_csv
173
+ .split(/,(?=(?:(?:[^"']*["']){2})*[^"']*$)/)
174
+ .map(function (value) {
175
+ return value
176
+ .trim()
177
+ .replace(/^["']|["']$|(?<==)["']/g, '')
178
+ .replace(/=(((?!E_).)*[?{}|&~![()^]+((?!E_).)+)/, "='$1'");
179
+ })
180
+ .filter(Boolean);
181
+ }
182
+ }
183
+ exports.CSVArray = CSVArray;
184
+ async function getExtensionPrefix(extension) {
185
+ switch (true) {
186
+ default:
187
+ return 'extension';
188
+ case /xdebug([2-3])?$|opcache|ioncube|eaccelerator/.test(extension):
189
+ return 'zend_extension';
190
+ }
191
+ }
192
+ exports.getExtensionPrefix = getExtensionPrefix;
193
+ async function suppressOutput(os) {
194
+ switch (os) {
195
+ case 'win32':
196
+ return ' >$null 2>&1';
197
+ case 'linux':
198
+ case 'darwin':
199
+ return ' >/dev/null 2>&1';
200
+ default:
201
+ return await log('Platform ' + os + ' is not supported', os, 'error');
202
+ }
203
+ }
204
+ exports.suppressOutput = suppressOutput;
205
+ async function getUnsupportedLog(extension, version, os) {
206
+ return ('\n' +
207
+ (await addLog('$cross', extension, [extension, 'is not supported on PHP', version].join(' '), os)) +
208
+ '\n');
209
+ }
210
+ exports.getUnsupportedLog = getUnsupportedLog;
211
+ async function getCommand(os, suffix) {
212
+ switch (os) {
213
+ case 'linux':
214
+ case 'darwin':
215
+ return 'add_' + suffix + ' ';
216
+ case 'win32':
217
+ return 'Add-' + suffix.charAt(0).toUpperCase() + suffix.slice(1) + ' ';
218
+ default:
219
+ return await log('Platform ' + os + ' is not supported', os, 'error');
220
+ }
221
+ }
222
+ exports.getCommand = getCommand;
223
+ async function joins(...str) {
224
+ return [...str].join(' ');
225
+ }
226
+ exports.joins = joins;
227
+ async function scriptExtension(os) {
228
+ switch (os) {
229
+ case 'win32':
230
+ return '.ps1';
231
+ case 'linux':
232
+ case 'darwin':
233
+ return '.sh';
234
+ default:
235
+ return await log('Platform ' + os + ' is not supported', os, 'error');
236
+ }
237
+ }
238
+ exports.scriptExtension = scriptExtension;
239
+ async function scriptTool(os) {
240
+ switch (os) {
241
+ case 'win32':
242
+ return 'pwsh ';
243
+ case 'linux':
244
+ case 'darwin':
245
+ return 'bash ';
246
+ default:
247
+ return await log('Platform ' + os + ' is not supported', os, 'error');
248
+ }
249
+ }
250
+ exports.scriptTool = scriptTool;
251
+ async function customPackage(pkg, type, version, os) {
252
+ const pkg_name = pkg.replace(/\d+|(pdo|pecl)[_-]/, '');
253
+ const script_extension = await scriptExtension(os);
254
+ const script = path.join(__dirname, '../src/scripts/' + type + '/' + pkg_name + script_extension);
255
+ const command = await getCommand(os, pkg_name);
256
+ return '\n. ' + script + '\n' + command + version;
257
+ }
258
+ exports.customPackage = customPackage;
259
+ async function parseExtensionSource(extension, prefix) {
260
+ const regex = /(\w+)-(\w+:\/\/.{1,253}(?:[.:][^:/\s]{2,63})+\/)?([\w.-]+)\/([\w.-]+)@(.+)/;
261
+ const matches = regex.exec(extension);
262
+ matches[2] = matches[2] ? matches[2].slice(0, -1) : 'https://github.com';
263
+ return await joins('\nadd_extension_from_source', ...matches.splice(1, matches.length), prefix);
264
+ }
265
+ exports.parseExtensionSource = parseExtensionSource;
266
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,oDAAsC;AACtC,+CAAiC;AAO1B,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC5C,MAAM,WAAW,GAAW,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,WAAW,GAAW,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnD,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,EAAE,CACH,CAAC;AACJ,CAAC;AAXD,0BAWC;AAQM,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,SAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK,IAAI,EAAE;YACd,OAAO,KAAK,CAAC;QACf,KAAK,KAAK,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE;YACjC,OAAO,SAAS,CAAC;QACnB,KAAK,KAAK,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE,IAAI,SAAS;YAC9C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;QAC9D;YACE,OAAO,EAAE,CAAC;KACb;AACH,CAAC;AAhBD,4BAgBC;AAKM,KAAK,UAAU,cAAc;IAClC,OAAO,gGAAgG,CAAC;AAC1G,CAAC;AAFD,wCAEC;AAOM,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE;YACE,QAAQ,IAAI,EAAE;gBACZ,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC;oBACrB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B;oBACE,OAAO,OAAO,GAAG,IAAI,CAAC;aACzB;KACJ;AACH,CAAC;AAbD,oCAaC;AAOM,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,QAAQ,IAAI,EAAE;QACZ,KAAK,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnD,OAAO,QAAQ,CAAC;QAClB,KAAK,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC;YACE,OAAO,YAAY,CAAC;KACvB;AACH,CAAC;AATD,oCASC;AASM,KAAK,UAAU,YAAY,CAChC,KAAoB,EACpB,QAIkB;IAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAC5C;AACH,CAAC;AAXD,oCAWC;AAOM,KAAK,UAAU,KAAK,CAAC,IAAY;IACtC,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,QAAQ;QACR,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAVD,sBAUC;AASM,KAAK,UAAU,GAAG,CACvB,OAAe,EACf,EAAU,EACV,QAAgB;IAEhB,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO;YACV,OAAO,CACL,gBAAgB;gBAChB,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvB,KAAK;gBACL,OAAO;gBACP,YAAY,CACb,CAAC;QAEJ,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,CACL,cAAc,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,CACzE,CAAC;KACL;AACH,CAAC;AAtBD,kBAsBC;AAQM,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,EAAU;IACvD,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO;YACV,OAAO,YAAY,GAAG,OAAO,GAAG,GAAG,CAAC;QACtC,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,YAAY,GAAG,OAAO,GAAG,GAAG,CAAC;QACtC;YACE,OAAO,MAAM,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACzE;AACH,CAAC;AAVD,0BAUC;AASM,KAAK,UAAU,MAAM,CAC1B,IAAY,EACZ,OAAe,EACf,OAAe,EACf,EAAU;IAEV,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO;YACV,OAAO,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;QACtE,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;QACtE;YACE,OAAO,MAAM,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACzE;AACH,CAAC;AAfD,wBAeC;AAOM,KAAK,UAAU,cAAc,CAClC,aAAqB;IAErB,QAAQ,aAAa,EAAE;QACrB,KAAK,EAAE,CAAC;QACR,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ;YACE,OAAO;gBACL,aAAa,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzD,GAAG,aAAa;qBACb,KAAK,CAAC,GAAG,CAAC;qBAEV,GAAG,CAAC,UAAU,SAAiB;oBAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;wBAClC,OAAO,SAAS,CAAC;qBAClB;oBACD,OAAO,SAAS;yBACb,IAAI,EAAE;yBACN,WAAW,EAAE;yBACb,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;gBAC5D,CAAC,CAAC;aACL,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACrB;AACH,CAAC;AAxBD,wCAwBC;AAQM,KAAK,UAAU,QAAQ,CAAC,UAAkB;IAC/C,QAAQ,UAAU,EAAE;QAClB,KAAK,EAAE,CAAC;QACR,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,UAAU;iBACd,KAAK,CAAC,oCAAoC,CAAC;iBAC3C,GAAG,CAAC,UAAU,KAAK;gBAClB,OAAO,KAAK;qBACT,IAAI,EAAE;qBACN,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;qBACtC,OAAO,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAC;KACtB;AACH,CAAC;AAhBD,4BAgBC;AAOM,KAAK,UAAU,kBAAkB,CAAC,SAAiB;IACxD,QAAQ,IAAI,EAAE;QACZ;YACE,OAAO,WAAW,CAAC;QACrB,KAAK,8CAA8C,CAAC,IAAI,CAAC,SAAS,CAAC;YACjE,OAAO,gBAAgB,CAAC;KAC3B;AACH,CAAC;AAPD,gDAOC;AAOM,KAAK,UAAU,cAAc,CAAC,EAAU;IAC7C,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO;YACV,OAAO,cAAc,CAAC;QACxB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC;QAC5B;YACE,OAAO,MAAM,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACzE;AACH,CAAC;AAVD,wCAUC;AASM,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,OAAe,EACf,EAAU;IAEV,OAAO,CACL,IAAI;QACJ,CAAC,MAAM,MAAM,CACX,QAAQ,EACR,SAAS,EACT,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACzD,EAAE,CACH,CAAC;QACF,IAAI,CACL,CAAC;AACJ,CAAC;AAfD,8CAeC;AAQM,KAAK,UAAU,UAAU,CAAC,EAAU,EAAE,MAAc;IACzD,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QAC/B,KAAK,OAAO;YACV,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACzE;YACE,OAAO,MAAM,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACzE;AACH,CAAC;AAVD,gCAUC;AAOM,KAAK,UAAU,KAAK,CAAC,GAAG,GAAa;IAC1C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,sBAEC;AAOM,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO;YACV,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf;YACE,OAAO,MAAM,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACzE;AACH,CAAC;AAVD,0CAUC;AAOM,KAAK,UAAU,UAAU,CAAC,EAAU;IACzC,QAAQ,EAAE,EAAE;QACV,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,MAAM,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACzE;AACH,CAAC;AAVD,gCAUC;AAUM,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,IAAY,EACZ,OAAe,EACf,EAAU;IAEV,MAAM,QAAQ,GAAW,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAW,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAW,IAAI,CAAC,IAAI,CAC9B,SAAS,EACT,iBAAiB,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,GAAG,gBAAgB,CAC7D,CAAC;IACF,MAAM,OAAO,GAAW,MAAM,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AACpD,CAAC;AAdD,sCAcC;AAQM,KAAK,UAAU,oBAAoB,CACxC,SAAiB,EACjB,MAAc;IAGd,MAAM,KAAK,GACT,4EAA4E,CAAC;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;IACzD,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACzE,OAAO,MAAM,KAAK,CAChB,6BAA6B,EAC7B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EACpC,MAAM,CACP,CAAC;AACJ,CAAC;AAdD,oDAcC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "setup-php",
3
- "version": "2.16.0",
3
+ "version": "2.18.0",
4
4
  "private": false,
5
5
  "description": "Setup PHP for use with GitHub Actions",
6
6
  "main": "lib/install.js",
@@ -16,9 +16,9 @@
16
16
  ],
17
17
  "scripts": {
18
18
  "build": "tsc",
19
- "lint": "eslint **/src/*.ts --cache --fix",
20
- "format": "prettier --write **/src/*.ts && git add -f src/",
21
- "format-check": "prettier --check **/src/*.ts",
19
+ "lint": "eslint **/src/*.ts **/__tests__/*.ts --cache --fix",
20
+ "format": "prettier --write **/src/*.ts **/__tests__/*.ts && git add -f src/",
21
+ "format-check": "prettier --check **/src/*.ts **/__tests__/*.ts",
22
22
  "release": "ncc build -o dist && git add -f dist/",
23
23
  "test": "jest"
24
24
  },
@@ -35,27 +35,28 @@
35
35
  "license": "MIT",
36
36
  "dependencies": {
37
37
  "@actions/core": "^1.6.0",
38
- "@actions/exec": "^1.1.0",
39
- "@actions/io": "^1.1.1",
38
+ "@actions/exec": "^1.1.1",
39
+ "@actions/io": "^1.1.2",
40
40
  "fs": "0.0.1-security"
41
41
  },
42
42
  "devDependencies": {
43
- "@types/jest": "^27.0.3",
44
- "@types/node": "^16.11.10",
45
- "@typescript-eslint/eslint-plugin": "^5.4.0",
46
- "@typescript-eslint/parser": "^5.4.0",
47
- "@vercel/ncc": "^0.32.0",
48
- "eslint": "^8.3.0",
49
- "eslint-config-prettier": "^8.3.0",
50
- "eslint-plugin-import": "^2.25.3",
51
- "eslint-plugin-jest": "^25.3.0",
43
+ "@types/jest": "^27.4.1",
44
+ "@types/node": "^17.0.22",
45
+ "@typescript-eslint/eslint-plugin": "^5.16.0",
46
+ "@typescript-eslint/parser": "^5.16.0",
47
+ "@vercel/ncc": "^0.33.3",
48
+ "eslint": "^8.11.0",
49
+ "eslint-config-prettier": "^8.5.0",
50
+ "eslint-plugin-import": "^2.25.4",
51
+ "eslint-plugin-jest": "^26.1.2",
52
52
  "eslint-plugin-prettier": "^4.0.0",
53
- "jest": "^27.3.1",
54
- "jest-circus": "^27.3.1",
55
- "prettier": "^2.5.0",
53
+ "jest": "^27.5.1",
54
+ "jest-circus": "^27.5.1",
55
+ "nock": "^13.2.4",
56
+ "prettier": "^2.6.0",
56
57
  "simple-git-hooks": "^2.7.0",
57
- "ts-jest": "^27.0.7",
58
- "typescript": "^4.5.2"
58
+ "ts-jest": "^27.1.3",
59
+ "typescript": "^4.6.2"
59
60
  },
60
61
  "bugs": {
61
62
  "url": "https://github.com/shivammathur/setup-php/issues"
package/src/config.ts CHANGED
@@ -45,28 +45,28 @@ export async function addINIValuesWindows(
45
45
  * Function to add custom ini values
46
46
  *
47
47
  * @param ini_values_csv
48
- * @param os_version
48
+ * @param os
49
49
  * @param no_step
50
50
  */
51
51
  export async function addINIValues(
52
52
  ini_values_csv: string,
53
- os_version: string,
53
+ os: string,
54
54
  no_step = false
55
55
  ): Promise<string> {
56
56
  let script = '\n';
57
57
  switch (no_step) {
58
58
  case true:
59
59
  script +=
60
- (await utils.stepLog('Add php.ini values', os_version)) +
61
- (await utils.suppressOutput(os_version)) +
60
+ (await utils.stepLog('Add php.ini values', os)) +
61
+ (await utils.suppressOutput(os)) +
62
62
  '\n';
63
63
  break;
64
64
  case false:
65
65
  default:
66
- script += (await utils.stepLog('Add php.ini values', os_version)) + '\n';
66
+ script += (await utils.stepLog('Add php.ini values', os)) + '\n';
67
67
  break;
68
68
  }
69
- switch (os_version) {
69
+ switch (os) {
70
70
  case 'win32':
71
71
  return script + (await addINIValuesWindows(ini_values_csv));
72
72
  case 'darwin':
@@ -74,8 +74,8 @@ export async function addINIValues(
74
74
  return script + (await addINIValuesUnix(ini_values_csv));
75
75
  default:
76
76
  return await utils.log(
77
- 'Platform ' + os_version + ' is not supported',
78
- os_version,
77
+ 'Platform ' + os + ' is not supported',
78
+ os,
79
79
  'error'
80
80
  );
81
81
  }
@@ -1,6 +1,7 @@
1
1
  amqp=amqp
2
2
  apcu=apcu
3
3
  expect=expect
4
+ gnupg=gnupg
4
5
  grpc=grpc
5
6
  igbinary=igbinary
6
7
  imagick=imagick
@@ -0,0 +1,2 @@
1
+ COMPOSER_PROCESS_TIMEOUT=0
2
+ COMPOSER_NO_INTERACTION=1
@@ -0,0 +1,3 @@
1
+ opcache.enable=1
2
+ opcache.jit_buffer_size=256M
3
+ opcache.jit=1235
@@ -0,0 +1,2 @@
1
+ date.timezone=UTC
2
+ memory_limit=-1
@@ -0,0 +1 @@
1
+ xdebug.mode=coverage
@@ -3,6 +3,7 @@
3
3
  10,buster
4
4
  11,bullseye
5
5
  12,bookworm
6
+ 13,trixie
6
7
  16.04 LTS,xenial
7
8
  16.10,yakkety
8
9
  17.04,zesty
@@ -15,3 +16,4 @@
15
16
  20.10,groovy
16
17
  21.04,hirsute
17
18
  21.10,impish
19
+ 22.04,jammy
@@ -0,0 +1,12 @@
1
+ cgi
2
+ cli
3
+ curl
4
+ dev
5
+ fpm
6
+ intl
7
+ mbstring
8
+ mysql
9
+ opcache
10
+ pgsql
11
+ xml
12
+ zip
@@ -1,4 +1,12 @@
1
1
  {
2
+ "churn": {
3
+ "type": "phar",
4
+ "repository": "bmitch/churn-php",
5
+ "extension": ".phar",
6
+ "domain": "https://github.com",
7
+ "version_prefix": "",
8
+ "version_parameter": "-V"
9
+ },
2
10
  "composer-normalize": {
3
11
  "type": "phar",
4
12
  "repository": "ergebnis/composer-normalize",
@@ -81,6 +89,14 @@
81
89
  "version_prefix": "",
82
90
  "version_parameter": "--version"
83
91
  },
92
+ "phpspec": {
93
+ "type": "phar",
94
+ "repository": "phpspec/phpspec",
95
+ "extension": ".phar",
96
+ "domain": "https://github.com",
97
+ "version_prefix": "",
98
+ "version_parameter": "-V"
99
+ },
84
100
  "phpstan": {
85
101
  "type": "phar",
86
102
  "repository": "phpstan/phpstan",
@@ -99,58 +115,66 @@
99
115
  },
100
116
  "behat": {
101
117
  "type": "composer",
102
- "repository": "behat/behat"
118
+ "repository": "behat/behat",
119
+ "scope": "scoped"
103
120
  },
104
121
  "codeception": {
105
122
  "type": "composer",
106
- "repository": "codeception/codeception"
123
+ "repository": "codeception/codeception",
124
+ "scope": "scoped"
107
125
  },
108
126
  "automatic-composer-prefetcher": {
109
127
  "type": "composer",
110
128
  "alias": "composer-prefetcher",
111
- "repository": "narrowspark/automatic-composer-prefetcher"
129
+ "repository": "narrowspark/automatic-composer-prefetcher",
130
+ "scope": "global"
112
131
  },
113
132
  "composer-require-checker": {
114
133
  "type": "composer",
115
- "repository": "maglnet/composer-require-checker"
134
+ "repository": "maglnet/composer-require-checker",
135
+ "scope": "scoped"
116
136
  },
117
137
  "composer-unused": {
118
138
  "type": "composer",
119
- "repository": "icanhazstring/composer-unused"
139
+ "repository": "icanhazstring/composer-unused",
140
+ "scope": "scoped"
120
141
  },
121
142
  "flex": {
122
143
  "type": "composer",
123
- "repository": "symfony/flex"
144
+ "repository": "symfony/flex",
145
+ "scope": "global"
124
146
  },
125
147
  "phinx": {
126
148
  "type": "composer",
127
- "repository": "robmorgan/phinx"
149
+ "repository": "robmorgan/phinx",
150
+ "scope": "scoped"
128
151
  },
129
152
  "phplint": {
130
153
  "type": "composer",
131
- "repository": "overtrue/phplint"
132
- },
133
- "phpspec": {
134
- "type": "composer",
135
- "repository": "phpspec/phpspec"
154
+ "repository": "overtrue/phplint",
155
+ "scope": "scoped"
136
156
  },
137
157
  "phpunit-bridge": {
138
158
  "alias": "simple-phpunit",
139
159
  "type": "composer",
140
- "repository": "symfony/phpunit-bridge"
160
+ "repository": "symfony/phpunit-bridge",
161
+ "scope": "global"
141
162
  },
142
163
  "phpunit-polyfills": {
143
164
  "type": "composer",
144
- "repository": "yoast/phpunit-polyfills"
165
+ "repository": "yoast/phpunit-polyfills",
166
+ "scope": "global"
145
167
  },
146
168
  "prestissimo": {
147
169
  "type": "composer",
148
- "repository": "hirak/prestissimo"
170
+ "repository": "hirak/prestissimo",
171
+ "scope": "global"
149
172
  },
150
173
  "vapor-cli": {
151
174
  "type": "composer",
152
175
  "alias": "vapor",
153
- "repository": "laravel/vapor-cli"
176
+ "repository": "laravel/vapor-cli",
177
+ "scope": "scoped"
154
178
  },
155
179
  "blackfire": {
156
180
  "type": "custom-package",
@@ -168,6 +192,13 @@
168
192
  "domain": "https://github.com",
169
193
  "version_prefix": "v"
170
194
  },
195
+ "symfony-cli": {
196
+ "alias": "symfony",
197
+ "type": "custom-package",
198
+ "repository": "symfony-cli/symfony-cli",
199
+ "domain": "https://github.com",
200
+ "version_prefix": "-V"
201
+ },
171
202
  "blackfire-player": {
172
203
  "type": "custom-function",
173
204
  "domain": "https://get.blackfire.io",
@@ -205,7 +236,7 @@
205
236
  "phive": {
206
237
  "type": "custom-function",
207
238
  "repository": "phar-io/phive",
208
- "domain": "https://phar.io",
239
+ "domain": "https://github.com",
209
240
  "function": "phive",
210
241
  "version_prefix": "",
211
242
  "version_parameter": "status"
@@ -235,15 +266,6 @@
235
266
  "type": "custom-function",
236
267
  "function": "dev_tools"
237
268
  },
238
- "symfony-cli": {
239
- "type": "custom-function",
240
- "function": "symfony",
241
- "alias": "symfony",
242
- "domain": "https://github.com",
243
- "repository": "symfony/cli",
244
- "version_prefix": "v",
245
- "version_parameter": "version"
246
- },
247
269
  "wp-cli": {
248
270
  "type": "custom-function",
249
271
  "function": "wp_cli",
@@ -13,6 +13,7 @@
13
13
  "fetch_latest": "true",
14
14
  "function": "function_name",
15
15
  "repository": "user/tool",
16
+ "scope": "global, scoped",
16
17
  "type": "phar, composer, custom-package or custom-function",
17
18
  "version_parameter": "--version",
18
19
  "version_prefix": "v"
@@ -76,6 +77,16 @@
76
77
  "user/tool"
77
78
  ]
78
79
  },
80
+ "scope": {
81
+ "$id": "#/items/properties/scope",
82
+ "type": "string",
83
+ "title": "The scope schema",
84
+ "description": "Scope of tool installation: global or scoped",
85
+ "enum": [
86
+ "global",
87
+ "scoped"
88
+ ]
89
+ },
79
90
  "type": {
80
91
  "$id": "#/items/properties/type",
81
92
  "type": "string",