setup-php 2.13.0 → 2.17.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 (134) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +990 -922
  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 +5 -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 +214 -200
  11. package/lib/extensions.js.map +1 -1
  12. package/lib/fetch.d.ts +1 -0
  13. package/lib/fetch.js +63 -0
  14. package/lib/fetch.js.map +1 -0
  15. package/lib/install.d.ts +2 -0
  16. package/lib/install.js +75 -81
  17. package/lib/install.js.map +1 -1
  18. package/lib/tools.d.ts +23 -0
  19. package/lib/tools.js +367 -386
  20. package/lib/tools.js.map +1 -1
  21. package/lib/utils.d.ts +21 -0
  22. package/lib/utils.js +261 -291
  23. package/lib/utils.js.map +1 -1
  24. package/package.json +67 -56
  25. package/src/config.ts +82 -82
  26. package/src/configs/brew_extensions +31 -0
  27. package/src/configs/composer.env +2 -0
  28. package/src/configs/ini/jit.ini +3 -0
  29. package/src/configs/ini/php.ini +2 -0
  30. package/src/configs/ini/xdebug.ini +1 -0
  31. package/src/configs/os_releases.csv +19 -17
  32. package/src/configs/php-versions.json +6 -5
  33. package/src/configs/php_packages +12 -0
  34. package/src/configs/{php.json → pm/php.json} +29 -29
  35. package/src/configs/{phpunit.json → pm/phpunit.json} +24 -24
  36. package/src/configs/tools.json +278 -235
  37. package/src/configs/tools_schema.json +125 -114
  38. package/src/coverage.ts +144 -142
  39. package/src/extensions.ts +367 -349
  40. package/src/fetch.ts +54 -0
  41. package/src/install.ts +66 -82
  42. package/src/scripts/darwin.sh +285 -249
  43. package/src/scripts/extensions/add_extensions.ps1 +194 -0
  44. package/src/scripts/extensions/add_extensions.sh +184 -0
  45. package/src/scripts/{ext → extensions}/blackfire.ps1 +32 -32
  46. package/src/scripts/{ext → extensions}/blackfire.sh +22 -21
  47. package/src/scripts/{ext → extensions}/couchbase.sh +43 -43
  48. package/src/scripts/{ext → extensions}/cubrid.sh +60 -60
  49. package/src/scripts/extensions/extension_map.php +132 -0
  50. package/src/scripts/{ext → extensions}/firebird.ps1 +19 -19
  51. package/src/scripts/{ext → extensions}/firebird.sh +39 -35
  52. package/src/scripts/{ext → extensions}/gearman.sh +22 -22
  53. package/src/scripts/{ext → extensions}/geos.sh +17 -17
  54. package/src/scripts/{ext → extensions}/http.ps1 +54 -54
  55. package/src/scripts/{ext → extensions}/http.sh +109 -120
  56. package/src/scripts/{ext → extensions}/intl.sh +23 -23
  57. package/src/scripts/{ext → extensions}/ioncube.ps1 +33 -32
  58. package/src/scripts/{ext → extensions}/ioncube.sh +21 -19
  59. package/src/scripts/{ext → extensions}/oci.ps1 +85 -60
  60. package/src/scripts/{ext → extensions}/oci.sh +65 -63
  61. package/src/scripts/{ext → extensions}/patches/firebird.sh +11 -11
  62. package/src/scripts/{ext → extensions}/patches/geos.sh +7 -7
  63. package/src/scripts/{ext → extensions}/patches/http.sh +11 -11
  64. package/src/scripts/{ext → extensions}/patches/pdo_oci.sh +6 -6
  65. package/src/scripts/{ext → extensions}/patches/phpize.sh +26 -26
  66. package/src/scripts/{ext → extensions}/patches/protobuf.sh +4 -4
  67. package/src/scripts/{ext → extensions}/phalcon.ps1 +54 -54
  68. package/src/scripts/{ext → extensions}/phalcon.sh +58 -58
  69. package/src/scripts/{ext → extensions}/source.sh +145 -144
  70. package/src/scripts/extensions/sqlsrv.sh +15 -0
  71. package/src/scripts/linux.sh +269 -256
  72. package/src/scripts/tools/add_tools.ps1 +239 -26
  73. package/src/scripts/tools/add_tools.sh +175 -20
  74. package/src/scripts/tools/blackfire.ps1 +19 -19
  75. package/src/scripts/tools/blackfire.sh +40 -39
  76. package/src/scripts/tools/grpc_php_plugin.ps1 +21 -21
  77. package/src/scripts/tools/grpc_php_plugin.sh +58 -58
  78. package/src/scripts/tools/ppa.sh +192 -151
  79. package/src/scripts/tools/protoc.ps1 +38 -38
  80. package/src/scripts/tools/protoc.sh +28 -28
  81. package/src/scripts/tools/symfony.ps1 +14 -0
  82. package/src/scripts/tools/symfony.sh +13 -0
  83. package/src/scripts/unix.sh +186 -0
  84. package/src/scripts/win32.ps1 +352 -494
  85. package/src/tools.ts +512 -538
  86. package/src/utils.ts +415 -500
  87. package/.eslintrc.json +0 -16
  88. package/.github/CODE_OF_CONDUCT.md +0 -76
  89. package/.github/CONTRIBUTING.md +0 -70
  90. package/.github/FUNDING.yml +0 -7
  91. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
  92. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
  93. package/.github/PULL_REQUEST_TEMPLATE.md +0 -37
  94. package/.github/SECURITY.md +0 -29
  95. package/.github/workflows/docs.yml +0 -77
  96. package/.github/workflows/node-workflow.yml +0 -51
  97. package/.github/workflows/workflow.yml +0 -78
  98. package/.idea/workspace.xml +0 -113
  99. package/.prettierrc.json +0 -12
  100. package/__tests__/config.test.ts +0 -52
  101. package/__tests__/coverage.test.ts +0 -110
  102. package/__tests__/extensions.test.ts +0 -263
  103. package/__tests__/install.test.ts +0 -175
  104. package/__tests__/tools.test.ts +0 -524
  105. package/__tests__/utils.test.ts +0 -307
  106. package/action.yml +0 -29
  107. package/dist/index.js +0 -3051
  108. package/examples/bedrock.yml +0 -32
  109. package/examples/blackfire-player.yml +0 -31
  110. package/examples/blackfire.yml +0 -31
  111. package/examples/cakephp-mysql.yml +0 -114
  112. package/examples/cakephp-postgres.yml +0 -112
  113. package/examples/cakephp.yml +0 -92
  114. package/examples/codeigniter.yml +0 -34
  115. package/examples/laravel-mysql.yml +0 -74
  116. package/examples/laravel-postgres.yml +0 -74
  117. package/examples/laravel.yml +0 -42
  118. package/examples/lumen-mysql.yml +0 -74
  119. package/examples/lumen-postgres.yml +0 -74
  120. package/examples/lumen.yml +0 -38
  121. package/examples/phalcon-mysql.yml +0 -74
  122. package/examples/phalcon-postgres.yml +0 -73
  123. package/examples/sage.yml +0 -57
  124. package/examples/slim-framework.yml +0 -34
  125. package/examples/symfony-mysql.yml +0 -57
  126. package/examples/symfony-postgres.yml +0 -55
  127. package/examples/symfony.yml +0 -39
  128. package/examples/yii2-mysql.yml +0 -73
  129. package/examples/yii2-postgres.yml +0 -71
  130. package/examples/zend-framework.yml +0 -36
  131. package/jest.config.js +0 -12
  132. package/lib/sapi.js +0 -64
  133. package/src/scripts/common.sh +0 -314
  134. package/tsconfig.json +0 -18
@@ -1,524 +0,0 @@
1
- import * as tools from '../src/tools';
2
- import * as utils from '../src/utils';
3
-
4
- interface IData {
5
- tool: string;
6
- version?: string;
7
- domain?: string;
8
- extension?: string;
9
- os_version?: string;
10
- php_version?: string;
11
- release?: string;
12
- repository?: string;
13
- type?: string;
14
- fetch_latest?: string;
15
- version_parameter?: string;
16
- version_prefix?: string;
17
- }
18
-
19
- function getData(data: IData): Record<string, string> {
20
- return {
21
- tool: data.tool,
22
- version: data.version || '',
23
- domain: data.domain || 'https://example.com',
24
- extension: data.extension || '.phar',
25
- os_version: data.os_version || 'linux',
26
- php_version: data.php_version || '7.4',
27
- release: data.release || [data.tool, data.version].join(':'),
28
- repository: data.repository || '',
29
- type: data.type || 'phar',
30
- fetch_latest: data.fetch_latest || 'false',
31
- version_parameter: data.version_parameter || '-V',
32
- version_prefix: data.version_prefix || '',
33
- github: 'https://github.com',
34
- prefix: 'releases',
35
- verb: 'download'
36
- };
37
- }
38
-
39
- jest
40
- .spyOn(utils, 'fetch')
41
- .mockImplementation(
42
- async (url: string, token?: string): Promise<Record<string, string>> => {
43
- if (url.includes('atom') && !url.includes('no-release')) {
44
- return {
45
- data: '"releases/tag/1.2.3", "releases/tag/3.2.1", "releases/tag/2.3.1"'
46
- };
47
- } else if (url.includes('no-release')) {
48
- return {data: ''};
49
- } else if (!token || token === 'valid_token') {
50
- return {data: `[{"ref": "refs/tags/1.2.3", "url": "${url}"}]`};
51
- } else if (token === 'beta_token') {
52
- return {data: `[{"ref": "refs/tags/1.2.3-beta1", "url": "${url}"}]`};
53
- } else if (token === 'no_data') {
54
- return {data: '[]'};
55
- } else {
56
- return {error: 'Invalid token'};
57
- }
58
- }
59
- );
60
-
61
- describe('Tools tests', () => {
62
- it.each`
63
- token | version
64
- ${'invalid_token'} | ${'1.2'}
65
- ${'valid_token'} | ${'1.2.3'}
66
- ${'beta_token'} | ${'1.2.3-beta1'}
67
- ${''} | ${'1.2.3'}
68
- `('checking getSemverVersion: $token', async ({token, version}) => {
69
- process.env['COMPOSER_TOKEN'] = token;
70
- expect(
71
- await tools.getSemverVersion(getData({tool: 'tool', version: '1.2'}))
72
- ).toBe(version);
73
- });
74
-
75
- it.each`
76
- tool | fetch_latest | version
77
- ${'tool'} | ${'true'} | ${'3.2.1'}
78
- ${'tool-no-release'} | ${'true'} | ${'latest'}
79
- ${'tool'} | ${'false'} | ${'latest'}
80
- `(
81
- 'checking getLatestVersion: $tool, $fetch_latest, $version',
82
- async ({tool, fetch_latest, version}) => {
83
- expect(
84
- await tools.getLatestVersion(
85
- getData({
86
- tool: tool,
87
- repository: 'user/' + tool,
88
- fetch_latest: fetch_latest
89
- })
90
- )
91
- ).toBe(version);
92
- }
93
- );
94
-
95
- it.each`
96
- version | tool | type | expected
97
- ${'latest'} | ${'tool'} | ${'phar'} | ${'latest'}
98
- ${'1'} | ${'composer'} | ${'phar'} | ${'1'}
99
- ${'1.2'} | ${'tool'} | ${'composer'} | ${'1.2.*'}
100
- ${'^1.2.3'} | ${'tool'} | ${'phar'} | ${'1.2.3'}
101
- ${'>=1.2.3'} | ${'tool'} | ${'phar'} | ${'1.2.3'}
102
- ${'>1.2.3'} | ${'tool'} | ${'phar'} | ${'1.2.3'}
103
- ${'1.2.3-ALPHA'} | ${'tool'} | ${'phar'} | ${'1.2.3-ALPHA'}
104
- ${'1.2.3-alpha'} | ${'tool'} | ${'phar'} | ${'1.2.3-alpha'}
105
- ${'1.2.3-beta'} | ${'tool'} | ${'phar'} | ${'1.2.3-beta'}
106
- ${'1.2.3-rc'} | ${'tool'} | ${'phar'} | ${'1.2.3-rc'}
107
- ${'1.2.3-dev'} | ${'tool'} | ${'phar'} | ${'1.2.3-dev'}
108
- ${'1.2.3-alpha1'} | ${'tool'} | ${'phar'} | ${'1.2.3-alpha1'}
109
- ${'1.2.3-alpha.1'} | ${'tool'} | ${'phar'} | ${'1.2.3-alpha.1'}
110
- `(
111
- 'checking getVersion: $version, $tool, $type',
112
- async ({version, tool, type, expected}) => {
113
- expect(
114
- await tools.getVersion(
115
- version,
116
- getData({tool: tool, version: version, type: type})
117
- )
118
- ).toBe(expected);
119
- }
120
- );
121
-
122
- it.each`
123
- input | expected
124
- ${'tool'} | ${'tool'}
125
- ${'alias:1.2.3'} | ${'tool:1.2.3'}
126
- ${'tool:1.2.3'} | ${'tool:1.2.3'}
127
- ${'tool:^1.2.3'} | ${'tool:^1.2.3'}
128
- ${'tool:>=1.2.3'} | ${'tool:>=1.2.3'}
129
- ${'tool:>1.2.3'} | ${'tool:>1.2.3'}
130
- ${'tool:1.2.3-ALPHA'} | ${'tool:1.2.3-ALPHA'}
131
- ${'tool:1.2.3-beta'} | ${'tool:1.2.3-beta'}
132
- ${'tool:1.2.3-rc'} | ${'tool:1.2.3-rc'}
133
- ${'tool:1.2.3-dev'} | ${'tool:1.2.3-dev'}
134
- ${'tool:1.2.3-alpha1'} | ${'tool:1.2.3-alpha1'}
135
- ${'tool:1.2.3-alpha.1'} | ${'tool:1.2.3-alpha.1'}
136
- ${'user/tool:^1.2.3'} | ${'tool:^1.2.3'}
137
- `('checking getRelease: $input', async ({input, expected}) => {
138
- expect(
139
- await tools.getRelease(input, getData({tool: 'tool', version: 'latest'}))
140
- ).toBe(expected);
141
- });
142
-
143
- it.each`
144
- input_list | filtered_list
145
- ${'a, b'} | ${'composer, a, b'}
146
- ${'a, b, composer'} | ${'composer, a, b'}
147
- ${'a, b, composer:1.2.3'} | ${'composer:1.2.3, a, b'}
148
- ${'a, b, composer:v1.2.3'} | ${'composer:1.2.3, a, b'}
149
- ${'a, b, composer:snapshot'} | ${'composer:snapshot, a, b'}
150
- ${'a, b, composer:preview'} | ${'composer:preview, a, b'}
151
- ${'a, b, composer:1'} | ${'composer:1, a, b'}
152
- ${'a, b, composer:2'} | ${'composer:2, a, b'}
153
- ${'a, b, composer:v1'} | ${'composer:1, a, b'}
154
- ${'a, b, composer:v2'} | ${'composer:2, a, b'}
155
- `('checking filterList $input_list', async ({input_list, filtered_list}) => {
156
- expect(await tools.filterList(input_list.split(', '))).toStrictEqual(
157
- filtered_list.split(', ')
158
- );
159
- });
160
-
161
- it.each`
162
- version | version_prefix | url_suffix
163
- ${'latest'} | ${'v'} | ${'latest/download/tool.phar'}
164
- ${'1.2.3'} | ${'v'} | ${'download/v1.2.3/tool.phar'}
165
- ${'1.2.3'} | ${''} | ${'download/1.2.3/tool.phar'}
166
- `(
167
- 'checking getUrl: $version_prefix$version',
168
- async ({version, version_prefix, url_suffix}) => {
169
- const data = getData({
170
- tool: 'tool',
171
- version: version,
172
- version_prefix: version_prefix
173
- });
174
- expect(await tools.getUrl(data)).toContain(url_suffix);
175
- }
176
- );
177
-
178
- it.each`
179
- version | version_prefix | url
180
- ${'latest'} | ${''} | ${'https://example.com/tool.phar'}
181
- ${'1.2.3'} | ${'v'} | ${'https://example.com/tool-v1.2.3.phar'}
182
- `(
183
- 'checking getPharUrl: $version_prefix$version',
184
- async ({version, version_prefix, url}) => {
185
- const data = getData({
186
- tool: 'tool',
187
- version: version,
188
- version_prefix: version_prefix
189
- });
190
- expect(await tools.getPharUrl(data)).toBe(url);
191
- }
192
- );
193
-
194
- it.each`
195
- os_version | script
196
- ${'linux'} | ${'add_tool https://example.com/tool.phar tool "-v"'}
197
- ${'darwin'} | ${'add_tool https://example.com/tool.phar tool "-v"'}
198
- ${'win32'} | ${'Add-Tool https://example.com/tool.phar tool "-v"'}
199
- ${'openbsd'} | ${'Platform openbsd is not supported'}
200
- `('checking addArchive: $os_version', async ({os_version, script}) => {
201
- const data = getData({
202
- tool: 'tool',
203
- version: 'latest',
204
- version_parameter: JSON.stringify('-v'),
205
- os_version: os_version
206
- });
207
- data['url'] = 'https://example.com/tool.phar';
208
- expect(await tools.addArchive(data)).toContain(script);
209
- });
210
-
211
- it.each`
212
- os_version | script
213
- ${'linux'} | ${'add_composertool tool tool:1.2.3 user/'}
214
- ${'darwin'} | ${'add_composertool tool tool:1.2.3 user/'}
215
- ${'win32'} | ${'Add-Composertool tool tool:1.2.3 user/'}
216
- ${'openbsd'} | ${'Platform openbsd is not supported'}
217
- `('checking addPackage: $os_version', async ({os_version, script}) => {
218
- const data = getData({
219
- tool: 'tool',
220
- version: '1.2.3',
221
- repository: 'user/tool',
222
- os_version: os_version
223
- });
224
- data['release'] = [data['tool'], data['version']].join(':');
225
- expect(await tools.addPackage(data)).toContain(script);
226
- });
227
-
228
- it.each`
229
- version | php_version | os_version | script
230
- ${'latest'} | ${'7.4'} | ${'linux'} | ${'add_tool https://phar.io/releases/phive.phar phive'}
231
- ${'1.2.3'} | ${'7.4'} | ${'darwin'} | ${'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive'}
232
- ${'1.2.3'} | ${'7.2'} | ${'win32'} | ${'Add-Tool https://github.com/phar-io/phive/releases/download/0.14.5/phive-0.14.5.phar phive'}
233
- ${'1.2.3'} | ${'7.1'} | ${'win32'} | ${'Add-Tool https://github.com/phar-io/phive/releases/download/0.13.5/phive-0.13.5.phar phive'}
234
- ${'latest'} | ${'5.6'} | ${'win32'} | ${'Add-Tool https://github.com/phar-io/phive/releases/download/0.12.1/phive-0.12.1.phar phive'}
235
- ${'latest'} | ${'5.5'} | ${'win32'} | ${'Phive is not supported on PHP 5.5'}
236
- `(
237
- 'checking addPhive: $version, $php_version, $os_version',
238
- async ({version, php_version, os_version, script}) => {
239
- const data = getData({
240
- tool: 'phive',
241
- domain: 'https://phar.io',
242
- repository: 'phar-io/phive',
243
- version_parameter: 'status',
244
- version: version,
245
- php_version: php_version,
246
- os_version: os_version
247
- });
248
- script = await tools.addPhive(data);
249
- expect(script).toContain(script);
250
- }
251
- );
252
-
253
- it.each`
254
- version | php_version | url
255
- ${'latest'} | ${'7.4'} | ${'https://get.blackfire.io/blackfire-player.phar'}
256
- ${'1.2.3'} | ${'7.4'} | ${'https://get.blackfire.io/blackfire-player-v1.2.3.phar'}
257
- ${'latest'} | ${'5.5'} | ${'https://get.blackfire.io/blackfire-player-v1.9.3.phar'}
258
- ${'latest'} | ${'7.0'} | ${'https://get.blackfire.io/blackfire-player-v1.9.3.phar'}
259
- `(
260
- 'checking addBlackfirePlayer: $version, $php_version',
261
- async ({version, php_version, url}) => {
262
- const data = getData({
263
- tool: 'blackfire-player',
264
- domain: 'https://get.blackfire.io',
265
- version_prefix: 'v',
266
- version: version,
267
- php_version: php_version
268
- });
269
- expect(await tools.addBlackfirePlayer(data)).toContain(url);
270
- }
271
- );
272
-
273
- it.each`
274
- version | url
275
- ${'latest'} | ${'https://deployer.org/deployer.phar'}
276
- ${'1.2.3'} | ${'https://deployer.org/releases/v1.2.3/deployer.phar'}
277
- `('checking addDeployer: $version', async ({version, url}) => {
278
- const data = getData({
279
- tool: 'deployer',
280
- domain: 'https://deployer.org',
281
- version: version
282
- });
283
- expect(await tools.addDeployer(data)).toContain(url);
284
- });
285
-
286
- it.each`
287
- version | no_tool_cache | cache_url | source_url
288
- ${'latest'} | ${'true'} | ${'https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar'} | ${'https://getcomposer.org/composer-stable.phar'}
289
- ${'stable'} | ${'true'} | ${'https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar'} | ${'https://getcomposer.org/composer-stable.phar'}
290
- ${'snapshot'} | ${'true'} | ${'https://github.com/shivammathur/composer-cache/releases/latest/download/composer-snapshot.phar'} | ${'https://getcomposer.org/composer.phar'}
291
- ${'preview'} | ${'true'} | ${'https://github.com/shivammathur/composer-cache/releases/latest/download/composer-preview.phar'} | ${'https://getcomposer.org/composer-preview.phar'}
292
- ${'1'} | ${'false'} | ${'https://github.com/shivammathur/composer-cache/releases/latest/download/composer-1.phar'} | ${'https://getcomposer.org/composer-1.phar'}
293
- ${'2'} | ${'false'} | ${'https://github.com/shivammathur/composer-cache/releases/latest/download/composer-2.phar'} | ${'https://getcomposer.org/composer-2.phar'}
294
- ${'1.2.3'} | ${'false'} | ${'https://github.com/composer/composer/releases/download/1.2.3/composer.phar'} | ${'https://getcomposer.org/composer-1.2.3.phar'}
295
- ${'1.2.3-RC1'} | ${'false'} | ${'https://github.com/composer/composer/releases/download/1.2.3-RC1/composer.phar'} | ${'https://getcomposer.org/composer-1.2.3-RC1.phar'}
296
- `(
297
- 'checking addComposer: $version, $no_tool_cache',
298
- async ({version, no_tool_cache, cache_url, source_url}) => {
299
- const data = getData({
300
- tool: 'composer',
301
- domain: 'https://getcomposer.org',
302
- repository: 'composer/composer',
303
- version: version
304
- });
305
- process.env['no_tools_cache'] = no_tool_cache;
306
- if (no_tool_cache !== 'true') {
307
- expect(await tools.addComposer(data)).toContain(
308
- `${cache_url},${source_url}`
309
- );
310
- } else {
311
- expect(await tools.addComposer(data)).toContain(source_url);
312
- }
313
- }
314
- );
315
-
316
- it.each`
317
- version | os_version | uri
318
- ${'latest'} | ${'linux'} | ${'releases/latest/download/symfony_linux_amd64'}
319
- ${'1.2.3'} | ${'linux'} | ${'releases/download/v1.2.3/symfony_linux_amd64'}
320
- ${'latest'} | ${'darwin'} | ${'releases/latest/download/symfony_darwin_amd64'}
321
- ${'1.2.3'} | ${'darwin'} | ${'releases/download/v1.2.3/symfony_darwin_amd64'}
322
- ${'latest'} | ${'win32'} | ${'releases/latest/download/symfony_windows_amd64.exe'}
323
- ${'1.2.3'} | ${'win32'} | ${'releases/download/v1.2.3/symfony_windows_amd64.exe'}
324
- ${'latest'} | ${'openbsd'} | ${'Platform openbsd is not supported'}
325
- `(
326
- 'checking addSymfony: $version, $os_version',
327
- async ({version, os_version, uri}) => {
328
- const data = getData({
329
- tool: 'symfony',
330
- php_version: '7.4',
331
- version: version,
332
- os_version: os_version
333
- });
334
- expect(await tools.addSymfony(data)).toContain(uri);
335
- }
336
- );
337
-
338
- it.each`
339
- version | uri
340
- ${'latest'} | ${'wp-cli/builds/blob/gh-pages/phar/wp-cli.phar?raw=true'}
341
- ${'1.2.3'} | ${'wp-cli/wp-cli/releases/download/v1.2.3/wp-cli-1.2.3.phar'}
342
- `('checking addWPCLI: $version', async ({version, uri}) => {
343
- const data = getData({
344
- tool: 'wp-cli',
345
- repository: 'wp-cli/wp-cli',
346
- php_version: '7.4',
347
- version_prefix: 'v',
348
- version: version
349
- });
350
- expect(await tools.addWPCLI(data)).toContain(uri);
351
- });
352
-
353
- it.each`
354
- tool | os_version | script
355
- ${'phpize'} | ${'linux'} | ${'add_devtools phpize'}
356
- ${'php-config'} | ${'linux'} | ${'add_devtools php-config'}
357
- ${'phpize'} | ${'darwin'} | ${'add_devtools phpize'}
358
- ${'php-config'} | ${'darwin'} | ${'add_devtools php-config'}
359
- ${'phpize'} | ${'win32'} | ${'Add-Log "$tick" "phpize" "phpize is not a windows tool"'}
360
- ${'php-config'} | ${'win32'} | ${'Add-Log "$tick" "php-config" "php-config is not a windows tool"'}
361
- ${'phpize'} | ${'openbsd'} | ${'Platform openbsd is not supported'}
362
- `(
363
- 'checking addDevTools: $tool, $os_version',
364
- async ({tool, os_version, script}) => {
365
- const data = getData({
366
- version: '7.4',
367
- tool: tool,
368
- os_version: os_version
369
- });
370
- expect(await tools.addDevTools(data)).toContain(script);
371
- }
372
- );
373
-
374
- it.each([
375
- [
376
- 'blackfire, blackfire-player, cs2pr, flex, grpc_php_plugin, php-cs-fixer, phplint, phpstan, phpunit, pecl, phing, phinx, phinx:1.2.3, phive, phpunit-bridge, php-config, phpize, protoc, symfony, vapor, wp',
377
- [
378
- 'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer',
379
- 'add_blackfire',
380
- 'add_tool https://get.blackfire.io/blackfire-player.phar blackfire-player "-V"',
381
- 'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr "-V"',
382
- 'add_composertool flex flex symfony/',
383
- 'add_grpc_php_plugin latest',
384
- 'add_tool https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v3.2.1/php-cs-fixer.phar php-cs-fixer "-V"',
385
- 'add_composertool phplint phplint overtrue/',
386
- 'add_tool https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar phpstan "-V"',
387
- 'add_tool https://phar.phpunit.de/phpunit.phar phpunit "--version"',
388
- 'add_pecl',
389
- 'add_tool https://www.phing.info/get/phing-latest.phar phing "-v"',
390
- 'add_composertool phinx phinx robmorgan/',
391
- 'add_composertool phinx phinx:1.2.3 robmorgan/',
392
- 'add_tool https://phar.io/releases/phive.phar phive "status"',
393
- 'add_composertool phpunit-bridge phpunit-bridge symfony/',
394
- 'add_devtools php-config',
395
- 'add_devtools phpize',
396
- 'add_protoc latest',
397
- 'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_linux_amd64 symfony-cli "version"',
398
- 'add_composertool vapor-cli vapor-cli laravel/',
399
- 'add_tool https://github.com/wp-cli/builds/blob/gh-pages/phar/wp-cli.phar?raw=true wp-cli "--version"'
400
- ]
401
- ]
402
- ])('checking addTools on linux', async (tools_csv, scripts) => {
403
- const expected = await tools.addTools(tools_csv, '7.4', 'linux');
404
- scripts.forEach(script => {
405
- expect(expected).toContain(script);
406
- });
407
- });
408
-
409
- it.each([
410
- [
411
- 'behat, blackfire, blackfire-player, composer-normalize, composer-require-checker, composer-unused, cs2pr:1.2.3, flex, grpc_php_plugin:1.2.3, infection, phan, phan:1.2.3, phing:1.2.3, phinx, phive:1.2.3, php-config, phpcbf, phpcpd, phpcs, phpize, phpmd, phpspec, phpunit-bridge:5.6, protoc:v1.2.3, psalm, symfony-cli, symfony:1.2.3, vapor-cli, wp-cli',
412
- [
413
- 'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer',
414
- 'add_composertool behat behat behat/',
415
- 'add_blackfire',
416
- 'add_tool https://get.blackfire.io/blackfire-player.phar blackfire-player "-V"',
417
- 'add_tool https://github.com/ergebnis/composer-normalize/releases/latest/download/composer-normalize.phar composer-normalize "-V"',
418
- 'add_composertool composer-require-checker composer-require-checker maglnet/',
419
- 'add_composertool composer-unused composer-unused icanhazstring/',
420
- 'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/download/1.2.3/cs2pr cs2pr "-V"',
421
- 'add_composertool flex flex symfony/',
422
- 'add_grpc_php_plugin 1.2.3',
423
- 'add_tool https://github.com/infection/infection/releases/latest/download/infection.phar infection "-V"',
424
- 'add_tool https://github.com/phan/phan/releases/latest/download/phan.phar phan "-v"',
425
- 'add_tool https://github.com/phan/phan/releases/download/1.2.3/phan.phar phan "-v"',
426
- 'add_tool https://www.phing.info/get/phing-1.2.3.phar phing "-v"',
427
- 'add_composertool phinx phinx robmorgan/',
428
- 'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive',
429
- 'add_devtools php-config',
430
- 'add_tool https://github.com/squizlabs/PHP_CodeSniffer/releases/latest/download/phpcbf.phar phpcbf "--version"',
431
- 'add_tool https://phar.phpunit.de/phpcpd.phar phpcpd "--version"',
432
- 'add_tool https://github.com/squizlabs/PHP_CodeSniffer/releases/latest/download/phpcs.phar phpcs "--version"',
433
- 'add_devtools phpize',
434
- 'add_tool https://github.com/phpmd/phpmd/releases/latest/download/phpmd.phar phpmd "--version"',
435
- 'add_composertool phpspec phpspec phpspec/',
436
- 'add_composertool phpunit-bridge phpunit-bridge:5.6.* symfony/',
437
- 'add_protoc 1.2.3',
438
- 'add_tool https://github.com/vimeo/psalm/releases/latest/download/psalm.phar psalm "-v"',
439
- 'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_darwin_amd64 symfony-cli "version"',
440
- 'add_tool https://github.com/symfony/cli/releases/download/v1.2.3/symfony_darwin_amd64 symfony-cli "version"',
441
- 'add_composertool vapor-cli vapor-cli laravel/',
442
- 'add_tool https://github.com/wp-cli/builds/blob/gh-pages/phar/wp-cli.phar?raw=true wp-cli "--version"'
443
- ]
444
- ]
445
- ])('checking addTools on darwin', async (tools_csv, scripts) => {
446
- const expected = await tools.addTools(tools_csv, '7.4', 'darwin');
447
- scripts.forEach(script => {
448
- expect(expected).toContain(script);
449
- });
450
- });
451
-
452
- it.each([
453
- [
454
- 'blackfire, blackfire-player:1.2.3, cs2pr, deployer, does_not_exist, flex, phinx, phive:0.13.2, php-config, phpize, phpmd, simple-phpunit, symfony, wp',
455
- [
456
- 'Add-Tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer',
457
- 'Add-Blackfire',
458
- 'Add-Tool https://get.blackfire.io/blackfire-player-v1.2.3.phar blackfire-player "-V"',
459
- 'Add-Tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr "-V"',
460
- 'Add-Tool https://deployer.org/deployer.phar deployer "-V"',
461
- 'Tool does_not_exist is not supported',
462
- 'Add-Composertool flex flex symfony/',
463
- 'Add-Composertool phinx phinx robmorgan/',
464
- 'Add-Tool https://github.com/phar-io/phive/releases/download/0.13.2/phive-0.13.2.phar phive "status"',
465
- 'php-config is not a windows tool',
466
- 'phpize is not a windows tool',
467
- 'Add-Tool https://github.com/phpmd/phpmd/releases/latest/download/phpmd.phar phpmd "--version"',
468
- 'Add-Composertool phpunit-bridge phpunit-bridge symfony/',
469
- 'Add-Tool https://github.com/symfony/cli/releases/latest/download/symfony_windows_amd64.exe symfony-cli "version"',
470
- 'Add-Tool https://github.com/wp-cli/builds/blob/gh-pages/phar/wp-cli.phar?raw=true wp-cli "--version"'
471
- ]
472
- ]
473
- ])('checking addTools on Windows', async (tools_csv, scripts) => {
474
- const expected = await tools.addTools(tools_csv, '7.4', 'win32');
475
- scripts.forEach(script => {
476
- expect(expected).toContain(script);
477
- });
478
- });
479
-
480
- it.each([
481
- [
482
- 'composer:v1, codeception/codeception, prestissimo, hirak/prestissimo, composer-prefetcher, narrowspark/automatic-composer-prefetcher, phinx: 1.2, robmorgan/phinx: ^1.2, user/tool:1.2.3, user/tool:~1.2',
483
- [
484
- 'Add-Tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-1.phar,https://getcomposer.org/composer-1.phar composer',
485
- 'Add-Composertool codeception codeception codeception/',
486
- 'Add-Composertool prestissimo prestissimo hirak/',
487
- 'Add-Composertool automatic-composer-prefetcher automatic-composer-prefetcher narrowspark/',
488
- 'Add-Composertool phinx phinx:1.2.* robmorgan/',
489
- 'Add-Composertool phinx phinx:^1.2 robmorgan/',
490
- 'Add-Composertool tool tool:1.2.3 user/',
491
- 'Add-Composertool tool tool:~1.2 user/'
492
- ]
493
- ]
494
- ])(
495
- 'checking addTools with composer tool using user/tool as input',
496
- async (tools_csv, scripts) => {
497
- const expected = await tools.addTools(tools_csv, '7.4', 'win32');
498
- scripts.forEach(script => {
499
- expect(expected).toContain(script);
500
- });
501
- }
502
- );
503
-
504
- it.each`
505
- tools_csv | script
506
- ${'none'} | ${''}
507
- ${'none, phpunit'} | ${'\nstep_log "Setup Tools"\nadd_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer latest\n\nadd_tool https://phar.phpunit.de/phpunit.phar phpunit "--version"'}
508
- ${'composer:preview'} | ${'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-preview.phar,https://getcomposer.org/composer-preview.phar composer preview'}
509
- ${'composer, composer:v1'} | ${'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-1.phar,https://getcomposer.org/composer-1.phar composer'}
510
- ${'composer:v1, composer:preview, composer:snapshot'} | ${'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-snapshot.phar,https://getcomposer.org/composer.phar composer snapshot'}
511
- `('checking composer setup: $tools_csv', async ({tools_csv, script}) => {
512
- expect(await tools.addTools(tools_csv, '7.4', 'linux')).toContain(script);
513
- });
514
-
515
- it.each`
516
- tools_csv | token | script
517
- ${'cs2pr:1.2'} | ${'invalid_token'} | ${'add_log "$cross" "cs2pr" "Invalid token"'}
518
- ${'phpunit:1.2'} | ${'invalid_token'} | ${'add_log "$cross" "phpunit" "Invalid token"'}
519
- ${'phpunit:0.1'} | ${'no_data'} | ${'add_log "$cross" "phpunit" "No version found with prefix 0.1."'}
520
- `('checking error: $tools_csv', async ({tools_csv, token, script}) => {
521
- process.env['COMPOSER_TOKEN'] = token;
522
- expect(await tools.addTools(tools_csv, '7.4', 'linux')).toContain(script);
523
- });
524
- });