mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-08-08 06:34:41 +07:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
cdb037c2a4 | |||
261f13a7c5 | |||
9eaa66d89b | |||
da9dfe4a71 | |||
a863ab6d3d | |||
050cb8061b | |||
3fda17f3fa | |||
1a2cb4f872 | |||
4969814b69 | |||
07f2ea7d02 | |||
a1c17b4b18 | |||
3eda583472 | |||
74d43be8a3 |
10
README.md
10
README.md
@ -204,7 +204,7 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
|
|||||||
|
|
||||||
- These extensions have custom support:
|
- These extensions have custom support:
|
||||||
- `cubrid`, `pdo_cubrid` and `gearman` on `Ubuntu`.
|
- `cubrid`, `pdo_cubrid` and `gearman` on `Ubuntu`.
|
||||||
- `geos` on `Ubuntu` and `macOS`.
|
- `geos` and `event` on `Ubuntu` and `macOS`.
|
||||||
- `blackfire`, `couchbase`, `ioncube`, `oci8`, `pdo_firebird`, `pdo_oci`, `pecl_http`, `phalcon3` and `phalcon4` on all supported OS.
|
- `blackfire`, `couchbase`, `ioncube`, `oci8`, `pdo_firebird`, `pdo_oci`, `pecl_http`, `phalcon3` and `phalcon4` on all supported OS.
|
||||||
|
|
||||||
- By default, extensions which cannot be added or disabled gracefully leave an error message in the logs, the execution is not interrupted. To change this behaviour you can set `fail-fast` flag to `true`.
|
- By default, extensions which cannot be added or disabled gracefully leave an error message in the logs, the execution is not interrupted. To change this behaviour you can set `fail-fast` flag to `true`.
|
||||||
@ -264,7 +264,7 @@ These tools can be set up globally using the `tools` input. It accepts a string
|
|||||||
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
```
|
```
|
||||||
|
|
||||||
- The latest stable version of `composer` is set up by default. You can set up the required `composer` version by specifying the major version `v1` or `v2`, or the version in `major.minor` or `semver` format, Additionally for composer `snapshot` and `preview` can also be specified to set up the respective releases.
|
- The latest stable version of `composer` is set up by default. You can set up the required `composer` version by specifying the major version `v1` or `v2`, or the version in `major.minor` or `semver` format. Additionally for composer `snapshot` and `preview` can also be specified to set up the respective releases.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Setup PHP with composer v2
|
- name: Setup PHP with composer v2
|
||||||
@ -425,7 +425,7 @@ Disable coverage for these reasons:
|
|||||||
|
|
||||||
- Specify the tools you want to set up.
|
- Specify the tools you want to set up.
|
||||||
- Accepts a `string` in csv-format. For example: `phpunit, phpcs`
|
- Accepts a `string` in csv-format. For example: `phpunit, phpcs`
|
||||||
- See [tools Support](#wrench-tools-support) for tools supported.
|
- See [tools support](#wrench-tools-support) for tools supported.
|
||||||
|
|
||||||
### Outputs
|
### Outputs
|
||||||
|
|
||||||
@ -680,7 +680,7 @@ act -P ubuntu-18.04=shivammathur/node:1804
|
|||||||
|
|
||||||
### JIT Configuration
|
### JIT Configuration
|
||||||
|
|
||||||
> Enable Just-in-time(JIT) on PHP 8.0 and above.
|
> Enable Just-in-time (JIT) on PHP 8.0 and above.
|
||||||
|
|
||||||
- To enable JIT, enable `opcache` in cli mode by setting `opcache.enable_cli=1`.
|
- To enable JIT, enable `opcache` in cli mode by setting `opcache.enable_cli=1`.
|
||||||
- JIT conflicts with `Xdebug`, `PCOV`, and other extensions which override `zend_execute_ex` function, so set `coverage: none` and disable any such extension if added.
|
- JIT conflicts with `Xdebug`, `PCOV`, and other extensions which override `zend_execute_ex` function, so set `coverage: none` and disable any such extension if added.
|
||||||
@ -841,7 +841,7 @@ For examples refer to [cs2pr documentation](https://github.com/staabm/annotate-p
|
|||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
Examples of using `setup-php` with various PHP Frameworks and Packages.
|
Examples of using `setup-php` with various PHP frameworks and packages.
|
||||||
|
|
||||||
| Framework/Package | Runs on | Workflow |
|
| Framework/Package | Runs on | Workflow |
|
||||||
|----------------------------------------|---------------------------------|---------------------------------------------------------------------------------------------------------------|
|
|----------------------------------------|---------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||||
|
@ -4,6 +4,8 @@ describe('Config tests', () => {
|
|||||||
it.each`
|
it.each`
|
||||||
driver | php | os | output
|
driver | php | os | output
|
||||||
${'PCOV'} | ${'7.4'} | ${'win32'} | ${'Add-Extension pcov,Disable-Extension xdebug false'}
|
${'PCOV'} | ${'7.4'} | ${'win32'} | ${'Add-Extension pcov,Disable-Extension xdebug false'}
|
||||||
|
${'pcov'} | ${'7.4'} | ${'win32'} | ${'$pcov_version = php -r "echo phpversion(\'pcov\');"'}
|
||||||
|
${'pcov'} | ${'7.4'} | ${'win32'} | ${'PCOV $pcov_version enabled as coverage driver'}
|
||||||
${'pcov'} | ${'7.0'} | ${'win32'} | ${'PHP 7.1 or newer is required'}
|
${'pcov'} | ${'7.0'} | ${'win32'} | ${'PHP 7.1 or newer is required'}
|
||||||
${'pcov'} | ${'5.6'} | ${'win32'} | ${'PHP 7.1 or newer is required'}
|
${'pcov'} | ${'5.6'} | ${'win32'} | ${'PHP 7.1 or newer is required'}
|
||||||
${'pcov'} | ${'7.4'} | ${'win32'} | ${'Add-Extension pcov,Disable-Extension xdebug false'}
|
${'pcov'} | ${'7.4'} | ${'win32'} | ${'Add-Extension pcov,Disable-Extension xdebug false'}
|
||||||
@ -15,6 +17,8 @@ describe('Config tests', () => {
|
|||||||
${'xdebug'} | ${'8.0'} | ${'linux'} | ${'add_extension xdebug'}
|
${'xdebug'} | ${'8.0'} | ${'linux'} | ${'add_extension xdebug'}
|
||||||
${'xdebug3'} | ${'8.0'} | ${'linux'} | ${'add_extension xdebug'}
|
${'xdebug3'} | ${'8.0'} | ${'linux'} | ${'add_extension xdebug'}
|
||||||
${'xdebug2'} | ${'7.4'} | ${'linux'} | ${'add_pecl_extension xdebug 2.9.8 zend_extension'}
|
${'xdebug2'} | ${'7.4'} | ${'linux'} | ${'add_pecl_extension xdebug 2.9.8 zend_extension'}
|
||||||
|
${'xdebug'} | ${'7.4'} | ${'linux'} | ${'xdebug_version="$(php -r "echo phpversion(\'xdebug\');")"'}
|
||||||
|
${'xdebug'} | ${'7.4'} | ${'linux'} | ${'Xdebug $xdebug_version enabled as coverage driver'}
|
||||||
${'xdebug'} | ${'7.4'} | ${'darwin'} | ${'add_brew_extension xdebug'}
|
${'xdebug'} | ${'7.4'} | ${'darwin'} | ${'add_brew_extension xdebug'}
|
||||||
${'xdebug3'} | ${'7.1'} | ${'darwin'} | ${'xdebug3 is not supported on PHP 7.1'}
|
${'xdebug3'} | ${'7.1'} | ${'darwin'} | ${'xdebug3 is not supported on PHP 7.1'}
|
||||||
${'xdebug2'} | ${'7.4'} | ${'darwin'} | ${'add_brew_extension xdebug2'}
|
${'xdebug2'} | ${'7.4'} | ${'darwin'} | ${'add_brew_extension xdebug2'}
|
||||||
|
@ -45,7 +45,11 @@ jest.mock('../src/fetch', () => ({
|
|||||||
.fn()
|
.fn()
|
||||||
.mockImplementation(
|
.mockImplementation(
|
||||||
async (url: string, token?: string): Promise<Record<string, string>> => {
|
async (url: string, token?: string): Promise<Record<string, string>> => {
|
||||||
if (url.includes('atom') && !url.includes('no-')) {
|
if (url.includes('deployer')) {
|
||||||
|
return {
|
||||||
|
data: '[{"version": "1.2.3", "url": "https://deployer.org/releases/v1.2.3/deployer.phar"}]'
|
||||||
|
};
|
||||||
|
} else if (url.includes('atom') && !url.includes('no-')) {
|
||||||
return {
|
return {
|
||||||
data: '"releases/tag/1.2.3", "releases/tag/3.2.1", "releases/tag/2.3.1"'
|
data: '"releases/tag/1.2.3", "releases/tag/3.2.1", "releases/tag/2.3.1"'
|
||||||
};
|
};
|
||||||
@ -283,6 +287,7 @@ describe('Tools tests', () => {
|
|||||||
version | url
|
version | url
|
||||||
${'latest'} | ${'https://deployer.org/deployer.phar'}
|
${'latest'} | ${'https://deployer.org/deployer.phar'}
|
||||||
${'1.2.3'} | ${'https://deployer.org/releases/v1.2.3/deployer.phar'}
|
${'1.2.3'} | ${'https://deployer.org/releases/v1.2.3/deployer.phar'}
|
||||||
|
${'3.2.1'} | ${'Version missing in deployer manifest'}
|
||||||
`('checking addDeployer: $version', async ({version, url}) => {
|
`('checking addDeployer: $version', async ({version, url}) => {
|
||||||
const data = getData({
|
const data = getData({
|
||||||
tool: 'deployer',
|
tool: 'deployer',
|
||||||
|
@ -256,4 +256,13 @@ describe('Utils tests', () => {
|
|||||||
'\nadd_extension_from_source ext https://sub.domain.XN--tld org repo release extension'
|
'\nadd_extension_from_source ext https://sub.domain.XN--tld org repo release extension'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('checking setVariable', async () => {
|
||||||
|
let script: string = await utils.setVariable('var', 'command', 'linux');
|
||||||
|
expect(script).toEqual('\nvar="$(command)"\n');
|
||||||
|
script = await utils.setVariable('var', 'command', 'darwin');
|
||||||
|
expect(script).toEqual('\nvar="$(command)"\n');
|
||||||
|
script = await utils.setVariable('var', 'command', 'win32');
|
||||||
|
expect(script).toEqual('\n$var = command\n');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
108
dist/index.js
vendored
108
dist/index.js
vendored
@ -135,7 +135,8 @@ async function addCoverageXdebug(extension, version, os, pipe) {
|
|||||||
extension = extension == 'xdebug3' ? 'xdebug' : extension;
|
extension = extension == 'xdebug3' ? 'xdebug' : extension;
|
||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension(extension, version, os, true)) + pipe;
|
(await extensions.addExtension(extension, version, os, true)) + pipe;
|
||||||
message = 'Xdebug enabled as coverage driver';
|
script += await utils.setVariable('xdebug_version', 'php -r "echo phpversion(\'xdebug\');"', os);
|
||||||
|
message = 'Xdebug $xdebug_version enabled as coverage driver';
|
||||||
status = '$tick';
|
status = '$tick';
|
||||||
}
|
}
|
||||||
script += await utils.addLog(status, extension, message, os);
|
script += await utils.addLog(status, extension, message, os);
|
||||||
@ -152,7 +153,8 @@ async function addCoveragePCOV(version, os, pipe) {
|
|||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension('pcov', version, os, true)) + pipe;
|
(await extensions.addExtension('pcov', version, os, true)) + pipe;
|
||||||
script += (await config.addINIValues('pcov.enabled=1', os, true)) + '\n';
|
script += (await config.addINIValues('pcov.enabled=1', os, true)) + '\n';
|
||||||
script += await utils.addLog('$tick', 'coverage: pcov', 'PCOV enabled as coverage driver', os);
|
script += await utils.setVariable('pcov_version', 'php -r "echo phpversion(\'pcov\');"', os);
|
||||||
|
script += await utils.addLog('$tick', 'coverage: pcov', 'PCOV $pcov_version enabled as coverage driver', os);
|
||||||
break;
|
break;
|
||||||
case /5\.[3-6]|7\.0/.test(version):
|
case /5\.[3-6]|7\.0/.test(version):
|
||||||
script += await utils.addLog('$cross', 'pcov', 'PHP 7.1 or newer is required', os);
|
script += await utils.addLog('$cross', 'pcov', 'PHP 7.1 or newer is required', os);
|
||||||
@ -243,7 +245,7 @@ async function addExtensionDarwin(extension_csv, version) {
|
|||||||
add_script += await utils.parseExtensionSource(extension, ext_prefix);
|
add_script += await utils.parseExtensionSource(extension, ext_prefix);
|
||||||
return;
|
return;
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
||||||
case /^couchbase|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
|
case /^couchbase|^event|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
||||||
case /(5\.6|7\.[0-3])phalcon3|7\.[2-4]phalcon4/.test(version_extension):
|
case /(5\.6|7\.[0-3])phalcon3|7\.[2-4]phalcon4/.test(version_extension):
|
||||||
case /(?<!5\.[3-6])(pdo_)?sqlsrv$/.test(version_extension):
|
case /(?<!5\.[3-6])(pdo_)?sqlsrv$/.test(version_extension):
|
||||||
@ -357,7 +359,7 @@ async function addExtensionLinux(extension_csv, version) {
|
|||||||
return;
|
return;
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
||||||
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
|
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
|
||||||
case /^couchbase|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
|
case /^couchbase|^event|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
|
||||||
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
@ -799,8 +801,17 @@ async function addDeployer(data) {
|
|||||||
data['url'] = data['domain'] + '/deployer.phar';
|
data['url'] = data['domain'] + '/deployer.phar';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
data['url'] =
|
const manifest = await fetch.fetch('https://deployer.org/manifest.json');
|
||||||
data['domain'] + '/releases/v' + data['version'] + '/deployer.phar';
|
const version_data = JSON.parse(manifest.data);
|
||||||
|
const version_key = Object.keys(version_data).find((key) => {
|
||||||
|
return version_data[key]['version'] === data['version'];
|
||||||
|
});
|
||||||
|
if (version_key) {
|
||||||
|
data['url'] = version_data[version_key]['url'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return await utils.addLog('$cross', 'deployer', 'Version missing in deployer manifest', data['os']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return await addArchive(data);
|
return await addArchive(data);
|
||||||
}
|
}
|
||||||
@ -1004,7 +1015,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
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;
|
exports.setVariable = 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;
|
||||||
const path = __importStar(__nccwpck_require__(17));
|
const path = __importStar(__nccwpck_require__(17));
|
||||||
const core = __importStar(__nccwpck_require__(186));
|
const core = __importStar(__nccwpck_require__(186));
|
||||||
const fetch = __importStar(__nccwpck_require__(387));
|
const fetch = __importStar(__nccwpck_require__(387));
|
||||||
@ -1244,6 +1255,17 @@ async function parseExtensionSource(extension, prefix) {
|
|||||||
return await joins('\nadd_extension_from_source', ...matches.splice(1, matches.length), prefix);
|
return await joins('\nadd_extension_from_source', ...matches.splice(1, matches.length), prefix);
|
||||||
}
|
}
|
||||||
exports.parseExtensionSource = parseExtensionSource;
|
exports.parseExtensionSource = parseExtensionSource;
|
||||||
|
async function setVariable(variable, command, os) {
|
||||||
|
switch (os) {
|
||||||
|
case 'win32':
|
||||||
|
return '\n$' + variable + ' = ' + command + '\n';
|
||||||
|
case 'linux':
|
||||||
|
case 'darwin':
|
||||||
|
default:
|
||||||
|
return '\n' + variable + '="$(' + command + ')"\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.setVariable = setVariable;
|
||||||
//# sourceMappingURL=utils.js.map
|
//# sourceMappingURL=utils.js.map
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@ -1672,6 +1694,13 @@ Object.defineProperty(exports, "summary", ({ enumerable: true, get: function ()
|
|||||||
*/
|
*/
|
||||||
var summary_2 = __nccwpck_require__(327);
|
var summary_2 = __nccwpck_require__(327);
|
||||||
Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } }));
|
Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } }));
|
||||||
|
/**
|
||||||
|
* Path exports
|
||||||
|
*/
|
||||||
|
var path_utils_1 = __nccwpck_require__(981);
|
||||||
|
Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } }));
|
||||||
|
Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } }));
|
||||||
|
Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } }));
|
||||||
//# sourceMappingURL=core.js.map
|
//# sourceMappingURL=core.js.map
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@ -1809,6 +1838,71 @@ exports.OidcClient = OidcClient;
|
|||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 981:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;
|
||||||
|
const path = __importStar(__nccwpck_require__(17));
|
||||||
|
/**
|
||||||
|
* toPosixPath converts the given path to the posix form. On Windows, \\ will be
|
||||||
|
* replaced with /.
|
||||||
|
*
|
||||||
|
* @param pth. Path to transform.
|
||||||
|
* @return string Posix path.
|
||||||
|
*/
|
||||||
|
function toPosixPath(pth) {
|
||||||
|
return pth.replace(/[\\]/g, '/');
|
||||||
|
}
|
||||||
|
exports.toPosixPath = toPosixPath;
|
||||||
|
/**
|
||||||
|
* toWin32Path converts the given path to the win32 form. On Linux, / will be
|
||||||
|
* replaced with \\.
|
||||||
|
*
|
||||||
|
* @param pth. Path to transform.
|
||||||
|
* @return string Win32 path.
|
||||||
|
*/
|
||||||
|
function toWin32Path(pth) {
|
||||||
|
return pth.replace(/[/]/g, '\\');
|
||||||
|
}
|
||||||
|
exports.toWin32Path = toWin32Path;
|
||||||
|
/**
|
||||||
|
* toPlatformPath converts the given path to a platform-specific path. It does
|
||||||
|
* this by replacing instances of / and \ with the platform-specific path
|
||||||
|
* separator.
|
||||||
|
*
|
||||||
|
* @param pth The path to platformize.
|
||||||
|
* @return string The platform-specific path.
|
||||||
|
*/
|
||||||
|
function toPlatformPath(pth) {
|
||||||
|
return pth.replace(/[/\\]/g, path.sep);
|
||||||
|
}
|
||||||
|
exports.toPlatformPath = toPlatformPath;
|
||||||
|
//# sourceMappingURL=path-utils.js.map
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
/***/ 327:
|
/***/ 327:
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||||
|
|
||||||
|
2407
package-lock.json
generated
2407
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-php",
|
"name": "setup-php",
|
||||||
"version": "2.19.0",
|
"version": "2.20.0",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Setup PHP for use with GitHub Actions",
|
"description": "Setup PHP for use with GitHub Actions",
|
||||||
"main": "lib/install.js",
|
"main": "lib/install.js",
|
||||||
@ -34,28 +34,28 @@
|
|||||||
"author": "shivammathur",
|
"author": "shivammathur",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.8.2",
|
"@actions/core": "^1.9.0",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/io": "^1.1.2"
|
"@actions/io": "^1.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^27.5.1",
|
"@types/jest": "^28.1.4",
|
||||||
"@types/node": "^17.0.36",
|
"@types/node": "^18.0.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.26.0",
|
"@typescript-eslint/eslint-plugin": "^5.30.5",
|
||||||
"@typescript-eslint/parser": "^5.26.0",
|
"@typescript-eslint/parser": "^5.30.5",
|
||||||
"@vercel/ncc": "^0.34.0",
|
"@vercel/ncc": "^0.34.0",
|
||||||
"eslint": "^8.16.0",
|
"eslint": "^8.19.0",
|
||||||
"eslint-config-prettier": "^8.5.0",
|
"eslint-config-prettier": "^8.5.0",
|
||||||
"eslint-plugin-import": "^2.26.0",
|
"eslint-plugin-import": "^2.26.0",
|
||||||
"eslint-plugin-jest": "^26.4.5",
|
"eslint-plugin-jest": "^26.5.3",
|
||||||
"eslint-plugin-prettier": "^4.0.0",
|
"eslint-plugin-prettier": "^4.2.1",
|
||||||
"jest": "^28.1.0",
|
"jest": "^28.1.2",
|
||||||
"jest-circus": "^28.1.0",
|
"jest-circus": "^28.1.2",
|
||||||
"nock": "^13.2.4",
|
"nock": "^13.2.8",
|
||||||
"prettier": "^2.6.2",
|
"prettier": "^2.7.1",
|
||||||
"simple-git-hooks": "^2.8.0",
|
"simple-git-hooks": "^2.8.0",
|
||||||
"ts-jest": "^28.0.3",
|
"ts-jest": "^28.0.5",
|
||||||
"typescript": "^4.7.2"
|
"typescript": "^4.7.4"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/shivammathur/setup-php/issues"
|
"url": "https://github.com/shivammathur/setup-php/issues"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
amqp=amqp
|
amqp=amqp
|
||||||
apcu=apcu
|
apcu=apcu
|
||||||
couchbase=couchbase
|
couchbase=couchbase
|
||||||
|
event=event
|
||||||
expect=expect
|
expect=expect
|
||||||
gnupg=gnupg
|
gnupg=gnupg
|
||||||
grpc=grpc
|
grpc=grpc
|
||||||
|
@ -38,7 +38,12 @@ export async function addCoverageXdebug(
|
|||||||
extension = extension == 'xdebug3' ? 'xdebug' : extension;
|
extension = extension == 'xdebug3' ? 'xdebug' : extension;
|
||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension(extension, version, os, true)) + pipe;
|
(await extensions.addExtension(extension, version, os, true)) + pipe;
|
||||||
message = 'Xdebug enabled as coverage driver';
|
script += await utils.setVariable(
|
||||||
|
'xdebug_version',
|
||||||
|
'php -r "echo phpversion(\'xdebug\');"',
|
||||||
|
os
|
||||||
|
);
|
||||||
|
message = 'Xdebug $xdebug_version enabled as coverage driver';
|
||||||
status = '$tick';
|
status = '$tick';
|
||||||
}
|
}
|
||||||
script += await utils.addLog(status, extension, message, os);
|
script += await utils.addLog(status, extension, message, os);
|
||||||
@ -66,12 +71,16 @@ export async function addCoveragePCOV(
|
|||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension('pcov', version, os, true)) + pipe;
|
(await extensions.addExtension('pcov', version, os, true)) + pipe;
|
||||||
script += (await config.addINIValues('pcov.enabled=1', os, true)) + '\n';
|
script += (await config.addINIValues('pcov.enabled=1', os, true)) + '\n';
|
||||||
|
script += await utils.setVariable(
|
||||||
|
'pcov_version',
|
||||||
|
'php -r "echo phpversion(\'pcov\');"',
|
||||||
|
os
|
||||||
|
);
|
||||||
// success
|
// success
|
||||||
script += await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
'coverage: pcov',
|
'coverage: pcov',
|
||||||
'PCOV enabled as coverage driver',
|
'PCOV $pcov_version enabled as coverage driver',
|
||||||
os
|
os
|
||||||
);
|
);
|
||||||
// version is not supported
|
// version is not supported
|
||||||
|
@ -33,13 +33,13 @@ export async function addExtensionDarwin(
|
|||||||
return;
|
return;
|
||||||
// match 5.3blackfire...8.1blackfire
|
// match 5.3blackfire...8.1blackfire
|
||||||
// match 5.3blackfire-(semver)...8.1blackfire-(semver)
|
// match 5.3blackfire-(semver)...8.1blackfire-(semver)
|
||||||
// match couchbase, geos, pdo_oci, oci8, http, pecl_http
|
// match couchbase, event, geos, pdo_oci, oci8, http, pecl_http
|
||||||
// match 5.3ioncube...7.4ioncube
|
// match 5.3ioncube...7.4ioncube
|
||||||
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
||||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(
|
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(
|
||||||
version_extension
|
version_extension
|
||||||
):
|
):
|
||||||
case /^couchbase|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
|
case /^couchbase|^event|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
|
||||||
extension
|
extension
|
||||||
):
|
):
|
||||||
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
||||||
@ -262,7 +262,7 @@ export async function addExtensionLinux(
|
|||||||
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(
|
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(
|
||||||
version_extension
|
version_extension
|
||||||
):
|
):
|
||||||
case /^couchbase|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
|
case /^couchbase|^event|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
|
||||||
extension
|
extension
|
||||||
):
|
):
|
||||||
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
||||||
|
50
src/scripts/extensions/event.sh
Normal file
50
src/scripts/extensions/event.sh
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Function to get event configure options
|
||||||
|
get_event_configure_opts() {
|
||||||
|
event_opts=(
|
||||||
|
--with-event-core
|
||||||
|
--with-event-extra
|
||||||
|
--with-event-openssl
|
||||||
|
--enable-event-sockets
|
||||||
|
)
|
||||||
|
if [ "$os" = 'Linux' ]; then
|
||||||
|
event_opts+=(
|
||||||
|
--with-openssl-dir=yes
|
||||||
|
--with-event-libevent-dir=/usr
|
||||||
|
)
|
||||||
|
else
|
||||||
|
event_opts+=(
|
||||||
|
--with-openssl-dir="$(brew --prefix openssl@1.1)"
|
||||||
|
--with-event-libevent-dir="$(brew --prefix libevent)"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Helper function to compile and install event
|
||||||
|
add_event_helper() {
|
||||||
|
local ext=$1
|
||||||
|
[[ "$ext" =~ ^event$ ]] && ext="event-$(get_pecl_version "event" "stable")"
|
||||||
|
event_opts=() && get_event_configure_opts
|
||||||
|
export EVENT_LINUX_LIBS='libevent-dev'
|
||||||
|
export EVENT_DARWIN_LIBS='libevent'
|
||||||
|
event_configure_opts="--with-php-config=$(command -v php-config) ${event_opts[*]}"
|
||||||
|
export EVENT_CONFIGURE_OPTS="$event_configure_opts"
|
||||||
|
add_extension_from_source event https://pecl.php.net event event "${ext##*-}" extension pecl
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to add event
|
||||||
|
add_event() {
|
||||||
|
local ext=$1
|
||||||
|
enable_extension "event" "extension"
|
||||||
|
if check_extension "event"; then
|
||||||
|
add_log "${tick:?}" "event" "Enabled"
|
||||||
|
else
|
||||||
|
if ! [[ "${version:?}" =~ ${old_versions:?} ]] && [ "$os" = "Darwin" ]; then
|
||||||
|
add_brew_extension event extension >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
add_event_helper "$ext" >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
add_extension_log "event" "Installed and enabled"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
os="$(uname -s)"
|
@ -37,7 +37,7 @@ Function Get-ToolVersion() {
|
|||||||
[Parameter(Position = 1, Mandatory = $true)]
|
[Parameter(Position = 1, Mandatory = $true)]
|
||||||
$param
|
$param
|
||||||
)
|
)
|
||||||
$alp = "[a-zA-Z0-9]"
|
$alp = "[a-zA-Z0-9\.]"
|
||||||
$version_regex = "[0-9]+((\.{1}$alp+)+)(\.{0})(-$alp+){0,1}"
|
$version_regex = "[0-9]+((\.{1}$alp+)+)(\.{0})(-$alp+){0,1}"
|
||||||
if($tool -eq 'composer') {
|
if($tool -eq 'composer') {
|
||||||
$composer_branch_alias = Select-String -Pattern "const\sBRANCH_ALIAS_VERSION" -Path $bin_dir\composer -Raw | Select-String -Pattern $version_regex | ForEach-Object { $_.matches.Value }
|
$composer_branch_alias = Select-String -Pattern "const\sBRANCH_ALIAS_VERSION" -Path $bin_dir\composer -Raw | Select-String -Pattern $version_regex | ForEach-Object { $_.matches.Value }
|
||||||
@ -67,6 +67,13 @@ Function Add-ToolsHelper() {
|
|||||||
Edit-ComposerConfig $bin_dir\$tool
|
Edit-ComposerConfig $bin_dir\$tool
|
||||||
} elseif($tool -eq "cs2pr") {
|
} elseif($tool -eq "cs2pr") {
|
||||||
(Get-Content $bin_dir/cs2pr).replace('exit(9)', 'exit(0)') | Set-Content $bin_dir/cs2pr
|
(Get-Content $bin_dir/cs2pr).replace('exit(9)', 'exit(0)') | Set-Content $bin_dir/cs2pr
|
||||||
|
} elseif($tool -eq "deployer") {
|
||||||
|
if(Test-Path $composer_bin\deployer.phar.bat) {
|
||||||
|
Copy-Item $composer_bin\deployer.phar.bat -Destination $composer_bin\dep.bat
|
||||||
|
}
|
||||||
|
if(Test-Path $composer_bin\dep.bat) {
|
||||||
|
Copy-Item $composer_bin\dep.bat -Destination $composer_bin\deployer.bat
|
||||||
|
}
|
||||||
} elseif($tool -eq "phan") {
|
} elseif($tool -eq "phan") {
|
||||||
$extensions += @('fileinfo', 'ast')
|
$extensions += @('fileinfo', 'ast')
|
||||||
} elseif($tool -eq "phinx") {
|
} elseif($tool -eq "phinx") {
|
||||||
@ -175,6 +182,9 @@ Function Add-ComposertoolHelper() {
|
|||||||
if(Test-Path $composer_lock) {
|
if(Test-Path $composer_lock) {
|
||||||
Remove-Item -Path $composer_lock -Force
|
Remove-Item -Path $composer_lock -Force
|
||||||
}
|
}
|
||||||
|
if(composer global show $prefix$tool -a 2>&1 | findstr '^type *: *composer-plugin') {
|
||||||
|
composer global config --no-plugins allow-plugins."$prefix$tool" true >$null 2>&1
|
||||||
|
}
|
||||||
composer global require $prefix$release $composer_args >$null 2>&1
|
composer global require $prefix$release $composer_args >$null 2>&1
|
||||||
return composer global show $prefix$tool 2>&1 | findstr '^versions'
|
return composer global show $prefix$tool 2>&1 | findstr '^versions'
|
||||||
} else {
|
} else {
|
||||||
@ -182,6 +192,9 @@ Function Add-ComposertoolHelper() {
|
|||||||
$scoped_dir_suffix = (Get-FileHash -InputStream $release_stream -Algorithm sha256).Hash
|
$scoped_dir_suffix = (Get-FileHash -InputStream $release_stream -Algorithm sha256).Hash
|
||||||
$scoped_dir = "$composer_bin\_tools\$tool-$scoped_dir_suffix"
|
$scoped_dir = "$composer_bin\_tools\$tool-$scoped_dir_suffix"
|
||||||
$unix_scoped_dir = $scoped_dir.replace('\', '/')
|
$unix_scoped_dir = $scoped_dir.replace('\', '/')
|
||||||
|
if(composer show $prefix$tool -d $unix_scoped_dir -a 2>&1 | findstr '^type *: *composer-plugin') {
|
||||||
|
composer config -d $unix_scoped_dir --no-plugins allow-plugins."$prefix$release" true >$null 2>&1
|
||||||
|
}
|
||||||
if(-not(Test-Path $scoped_dir)) {
|
if(-not(Test-Path $scoped_dir)) {
|
||||||
New-Item -ItemType Directory -Force -Path $scoped_dir > $null 2>&1
|
New-Item -ItemType Directory -Force -Path $scoped_dir > $null 2>&1
|
||||||
composer require $prefix$release -d $unix_scoped_dir $composer_args >$null 2>&1
|
composer require $prefix$release -d $unix_scoped_dir $composer_args >$null 2>&1
|
||||||
|
@ -9,7 +9,7 @@ export composer_lock="$composer_home/composer.lock"
|
|||||||
get_tool_version() {
|
get_tool_version() {
|
||||||
tool=$1
|
tool=$1
|
||||||
param=$2
|
param=$2
|
||||||
alp="[a-zA-Z0-9]"
|
alp="[a-zA-Z0-9\.]"
|
||||||
version_regex="[0-9]+((\.{1}$alp+)+)(\.{0})(-$alp+){0,1}"
|
version_regex="[0-9]+((\.{1}$alp+)+)(\.{0})(-$alp+){0,1}"
|
||||||
if [ "$tool" = "composer" ]; then
|
if [ "$tool" = "composer" ]; then
|
||||||
composer_alias_version="$(grep -Ea "const\sBRANCH_ALIAS_VERSION" "$tool_path_dir/composer" | grep -Eo "$version_regex")"
|
composer_alias_version="$(grep -Ea "const\sBRANCH_ALIAS_VERSION" "$tool_path_dir/composer" | grep -Eo "$version_regex")"
|
||||||
@ -61,6 +61,13 @@ add_tools_helper() {
|
|||||||
elif [ "$tool" = "cs2pr" ]; then
|
elif [ "$tool" = "cs2pr" ]; then
|
||||||
sudo sed -i 's/\r$//; s/exit(9)/exit(0)/' "$tool_path" 2>/dev/null ||
|
sudo sed -i 's/\r$//; s/exit(9)/exit(0)/' "$tool_path" 2>/dev/null ||
|
||||||
sudo sed -i '' 's/\r$//; s/exit(9)/exit(0)/' "$tool_path"
|
sudo sed -i '' 's/\r$//; s/exit(9)/exit(0)/' "$tool_path"
|
||||||
|
elif [ "$tool" = "deployer" ]; then
|
||||||
|
if [ -e "$composer_bin"/deployer.phar ]; then
|
||||||
|
sudo ln -s "$composer_bin"/deployer.phar "$composer_bin"/dep
|
||||||
|
fi
|
||||||
|
if [ -e "$composer_bin"/dep ]; then
|
||||||
|
sudo ln -s "$composer_bin"/dep "$composer_bin"/deployer
|
||||||
|
fi
|
||||||
elif [ "$tool" = "phan" ]; then
|
elif [ "$tool" = "phan" ]; then
|
||||||
extensions+=(fileinfo ast)
|
extensions+=(fileinfo ast)
|
||||||
elif [ "$tool" = "phinx" ]; then
|
elif [ "$tool" = "phinx" ]; then
|
||||||
@ -136,13 +143,19 @@ add_composertool_helper() {
|
|||||||
enable_extensions curl mbstring openssl
|
enable_extensions curl mbstring openssl
|
||||||
if [ "$scope" = "global" ]; then
|
if [ "$scope" = "global" ]; then
|
||||||
sudo rm -f "$composer_lock" >/dev/null 2>&1 || true
|
sudo rm -f "$composer_lock" >/dev/null 2>&1 || true
|
||||||
|
if composer global show "$prefix$tool" -a 2>&1 | grep -qE '^type *: *composer-plugin'; then
|
||||||
|
composer global config --no-plugins allow-plugins."$prefix$tool" true >/dev/null 2>&1
|
||||||
|
fi
|
||||||
composer global require "$prefix$release" "$composer_args" >/dev/null 2>&1
|
composer global require "$prefix$release" "$composer_args" >/dev/null 2>&1
|
||||||
composer global show "$prefix$tool" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
|
composer global show "$prefix$tool" 2>&1 | grep -E ^versions | sudo tee /tmp/composer_show.log >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
scoped_dir="$composer_bin/_tools/$tool-$(echo -n "$release" | shasum -a 256 | cut -d ' ' -f 1)"
|
scoped_dir="$composer_bin/_tools/$tool-$(echo -n "$release" | shasum -a 256 | cut -d ' ' -f 1)"
|
||||||
if ! [ -d "$scoped_dir" ]; then
|
if ! [ -d "$scoped_dir" ]; then
|
||||||
mkdir -p "$scoped_dir"
|
mkdir -p "$scoped_dir"
|
||||||
echo '{}' | tee "$scoped_dir/composer.json" >/dev/null
|
echo '{}' | tee "$scoped_dir/composer.json" >/dev/null
|
||||||
|
if composer show "$prefix$tool" -d "$scoped_dir" -a 2>&1 | grep -qE '^type *: *composer-plugin'; then
|
||||||
|
composer config -d "$scoped_dir" --no-plugins allow-plugins."$prefix$tool" true >/dev/null 2>&1
|
||||||
|
fi
|
||||||
composer require "$prefix$release" -d "$scoped_dir" "$composer_args" >/dev/null 2>&1
|
composer require "$prefix$release" -d "$scoped_dir" "$composer_args" >/dev/null 2>&1
|
||||||
composer show "$prefix$tool" -d "$scoped_dir" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
|
composer show "$prefix$tool" -d "$scoped_dir" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
@ -151,6 +151,7 @@ self_hosted_setup() {
|
|||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
self_hosted_helper >/dev/null 2>&1
|
self_hosted_helper >/dev/null 2>&1
|
||||||
|
add_env RUNNER_TOOL_CACHE /tmp
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -88,6 +88,7 @@ Function Add-Path {
|
|||||||
}
|
}
|
||||||
if ($env:GITHUB_PATH) {
|
if ($env:GITHUB_PATH) {
|
||||||
Add-Content $PathItem -Path $env:GITHUB_PATH -Encoding utf8
|
Add-Content $PathItem -Path $env:GITHUB_PATH -Encoding utf8
|
||||||
|
$env:PATH += "$PathItem;"
|
||||||
} else {
|
} else {
|
||||||
$newPath = (Get-ItemProperty -Path 'hkcu:\Environment' -Name PATH).Path.replace("$PathItem;", '')
|
$newPath = (Get-ItemProperty -Path 'hkcu:\Environment' -Name PATH).Path.replace("$PathItem;", '')
|
||||||
$newPath = $PathItem + ';' + $newPath
|
$newPath = $PathItem + ';' + $newPath
|
||||||
@ -295,6 +296,7 @@ if(-not($env:ImageOS) -and -not($env:ImageVersion)) {
|
|||||||
New-Item $php_dir -Type Directory -Force > $null 2>&1
|
New-Item $php_dir -Type Directory -Force > $null 2>&1
|
||||||
Add-Path -PathItem $php_dir
|
Add-Path -PathItem $php_dir
|
||||||
setx PHPROOT $php_dir >$null 2>&1
|
setx PHPROOT $php_dir >$null 2>&1
|
||||||
|
Add-Env -EnvName RUNNER_TOOL_CACHE -EnvValue $env:TEMP
|
||||||
} else {
|
} else {
|
||||||
$current_profile = "$PSHOME\Profile.ps1"
|
$current_profile = "$PSHOME\Profile.ps1"
|
||||||
if(-not(Test-Path -LiteralPath $current_profile)) {
|
if(-not(Test-Path -LiteralPath $current_profile)) {
|
||||||
|
21
src/tools.ts
21
src/tools.ts
@ -274,8 +274,25 @@ export async function addDeployer(data: RS): Promise<string> {
|
|||||||
if (data['version'] === 'latest') {
|
if (data['version'] === 'latest') {
|
||||||
data['url'] = data['domain'] + '/deployer.phar';
|
data['url'] = data['domain'] + '/deployer.phar';
|
||||||
} else {
|
} else {
|
||||||
data['url'] =
|
const manifest: RS = await fetch.fetch(
|
||||||
data['domain'] + '/releases/v' + data['version'] + '/deployer.phar';
|
'https://deployer.org/manifest.json'
|
||||||
|
);
|
||||||
|
const version_data: RSRS = JSON.parse(manifest.data);
|
||||||
|
const version_key: string | undefined = Object.keys(version_data).find(
|
||||||
|
(key: string) => {
|
||||||
|
return version_data[key]['version'] === data['version'];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (version_key) {
|
||||||
|
data['url'] = version_data[version_key]['url'];
|
||||||
|
} else {
|
||||||
|
return await utils.addLog(
|
||||||
|
'$cross',
|
||||||
|
'deployer',
|
||||||
|
'Version missing in deployer manifest',
|
||||||
|
data['os']
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return await addArchive(data);
|
return await addArchive(data);
|
||||||
}
|
}
|
||||||
|
23
src/utils.ts
23
src/utils.ts
@ -413,3 +413,26 @@ export async function parseExtensionSource(
|
|||||||
prefix
|
prefix
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log to console
|
||||||
|
*
|
||||||
|
* @param variable
|
||||||
|
* @param command
|
||||||
|
* @param os
|
||||||
|
*/
|
||||||
|
export async function setVariable(
|
||||||
|
variable: string,
|
||||||
|
command: string,
|
||||||
|
os: string
|
||||||
|
): Promise<string> {
|
||||||
|
switch (os) {
|
||||||
|
case 'win32':
|
||||||
|
return '\n$' + variable + ' = ' + command + '\n';
|
||||||
|
|
||||||
|
case 'linux':
|
||||||
|
case 'darwin':
|
||||||
|
default:
|
||||||
|
return '\n' + variable + '="$(' + command + ')"\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user