mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-22 20:01:06 +07:00
Add coverage support, improve logs and fix bugs
This commit is contained in:
parent
36104f0983
commit
9134867822
23
README.md
23
README.md
@ -46,6 +46,26 @@ Setup PHP with required extensions, php.ini configuration and composer in [GitHu
|
||||
- Extensions which are installed along with PHP if specified are enabled.
|
||||
- Extensions which cannot be installed gracefully leave an error message in the logs, the action is not interruped.
|
||||
|
||||
## :signal_strength: Coverage support
|
||||
- Specify `coverage: xdebug` to use `Xdebug`.
|
||||
- Runs on all [PHP versions supported](#tada-php-support)
|
||||
```
|
||||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.3
|
||||
coverage: xdebug
|
||||
```
|
||||
- Specify `coverage: pcov` to use `PCOV`. `PCOV` is way faster than `Xdebug`
|
||||
- For `pcov.directory` to be other than `src`, `lib` or, `app`, specify it using the `ini-values-csv` input.
|
||||
- `PCOV` needs `PHPUnit >= 8.0` and `PHP >= 7.1`, `PHPUnit` needs `PHP >= 7.2`. So use `PHP >= 7.2` with `PCOV`
|
||||
```
|
||||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.3
|
||||
ini-values-csv: 'pcov.directory=api' #optional, see above for usage.
|
||||
coverage: pcov
|
||||
```
|
||||
|
||||
## :memo: Usage
|
||||
|
||||
Inputs supported by this GitHub Action.
|
||||
@ -53,6 +73,7 @@ Inputs supported by this GitHub Action.
|
||||
- php-version
|
||||
- extension-csv (optional)
|
||||
- ini-values-csv (optional)
|
||||
- coverage (optional)
|
||||
|
||||
See [action.yml](action.yml) for more info
|
||||
|
||||
@ -68,6 +89,7 @@ steps:
|
||||
php-version: 7.3
|
||||
extension-csv: mbstring, xdebug #optional
|
||||
ini-values-csv: "post_max_size=256M, short_open_tag=On" #optional
|
||||
coverage: xdebug #optional
|
||||
- name: Check PHP Version
|
||||
run: php -v
|
||||
- name: Check Composer Version
|
||||
@ -97,6 +119,7 @@ jobs:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extension-csv: mbstring, xdebug #optional
|
||||
ini-values-csv: "post_max_size=256M, short_open_tag=On" #optional
|
||||
coverage: xdebug #optional
|
||||
- name: Check PHP Version
|
||||
run: php -v
|
||||
- name: Check Composer Version
|
||||
|
@ -28,11 +28,13 @@ describe('Features tests', () => {
|
||||
'Install-PhpExtension pcov -MinimumStability alpha'
|
||||
);
|
||||
|
||||
win32 = await features.addExtension('DoesNotExist', '7.2', 'win32');
|
||||
expect(win32).not.toContain(
|
||||
'Install-PhpExtension DoesNotExist -MinimumStability stable'
|
||||
);
|
||||
win32 = await features.addExtension('does_not_exist', '7.2', 'win32');
|
||||
expect(win32).toContain('Could not find extension: does_not_exist');
|
||||
|
||||
win32 = await features.addExtension('xdebug', '7.2', 'fedora');
|
||||
expect(win32).toContain('Platform fedora is not supported');
|
||||
});
|
||||
|
||||
it('checking addExtensionOnLinux', async () => {
|
||||
let linux: string = await features.addExtension(
|
||||
'xdebug, pcov',
|
||||
@ -45,7 +47,11 @@ describe('Features tests', () => {
|
||||
expect(linux).toContain(
|
||||
'sudo DEBIAN_FRONTEND=noninteractive apt install -y php7.2-pcov'
|
||||
);
|
||||
|
||||
linux = await features.addExtension('xdebug', '7.2', 'fedora');
|
||||
expect(linux).toContain('Platform fedora is not supported');
|
||||
});
|
||||
|
||||
it('checking addExtensionOnDarwin', async () => {
|
||||
let darwin: string = await features.addExtension(
|
||||
'xdebug, pcov',
|
||||
@ -55,8 +61,14 @@ describe('Features tests', () => {
|
||||
expect(darwin).toContain('sudo pecl install xdebug');
|
||||
expect(darwin).toContain('sudo pecl install pcov');
|
||||
|
||||
darwin = await features.addExtension('DoesNotExist', '7.2', 'darwin');
|
||||
expect(darwin).not.toContain('sudo pecl install DoesNotExist');
|
||||
darwin = await features.addExtension('xdebug', '5.6', 'darwin');
|
||||
expect(darwin).toContain('sudo pecl install xdebug-2.5.5');
|
||||
|
||||
darwin = await features.addExtension('does_not_exist', '7.2', 'darwin');
|
||||
expect(darwin).toContain('Could not find extension: does_not_exist');
|
||||
|
||||
darwin = await features.addExtension('xdebug', '7.2', 'fedora');
|
||||
expect(darwin).toContain('Platform fedora is not supported');
|
||||
});
|
||||
|
||||
it('checking addINIValuesOnWindows', async () => {
|
||||
@ -73,6 +85,12 @@ describe('Features tests', () => {
|
||||
expect(win32).toContain(
|
||||
'Add-Content C:\\tools\\php\\php.ini "date.timezone=Asia/Kolkata"'
|
||||
);
|
||||
|
||||
win32 = await features.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'fedora'
|
||||
);
|
||||
expect(win32).toContain('Platform fedora is not supported');
|
||||
});
|
||||
|
||||
it('checking addINIValuesOnLinux', async () => {
|
||||
@ -83,6 +101,12 @@ describe('Features tests', () => {
|
||||
expect(linux).toContain('echo "post_max_size=256M" >> $ini_file');
|
||||
expect(linux).toContain('echo "short_open_tag=On" >> $ini_file');
|
||||
expect(linux).toContain('echo "date.timezone=Asia/Kolkata" >> $ini_file');
|
||||
|
||||
linux = await features.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'fedora'
|
||||
);
|
||||
expect(linux).toContain('Platform fedora is not supported');
|
||||
});
|
||||
|
||||
it('checking addINIValuesOnDarwin', async () => {
|
||||
@ -93,5 +117,85 @@ describe('Features tests', () => {
|
||||
expect(darwin).toContain('echo "post_max_size=256M" >> $ini_file');
|
||||
expect(darwin).toContain('echo "short_open_tag=On" >> $ini_file');
|
||||
expect(darwin).toContain('echo "date.timezone=Asia/Kolkata" >> $ini_file');
|
||||
|
||||
darwin = await features.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'fedora'
|
||||
);
|
||||
expect(darwin).toContain('Platform fedora is not supported');
|
||||
});
|
||||
|
||||
it('checking addCoverage on windows', async () => {
|
||||
let win32: string = await features.addCoverage('xdebug', '7.4', 'win32');
|
||||
expect(win32).toContain(
|
||||
'Install-PhpExtension xdebug -MinimumStability alpha'
|
||||
);
|
||||
|
||||
win32 = await features.addCoverage('xdebug', '7.3', 'win32');
|
||||
expect(win32).toContain(
|
||||
'Install-PhpExtension xdebug -MinimumStability stable'
|
||||
);
|
||||
|
||||
win32 = await features.addCoverage('pcov', '7.4', 'win32');
|
||||
expect(win32).toContain(
|
||||
'Install-PhpExtension pcov -MinimumStability alpha'
|
||||
);
|
||||
expect(win32).toContain(
|
||||
'if(php -m | findstr -i xdebug) { Disable-PhpExtension xdebug C:\\tools\\php'
|
||||
);
|
||||
|
||||
win32 = await features.addCoverage('pcov', '7.3', 'win32');
|
||||
expect(win32).toContain(
|
||||
'Install-PhpExtension pcov -MinimumStability stable'
|
||||
);
|
||||
expect(win32).toContain(
|
||||
'if(php -m | findstr -i xdebug) { Disable-PhpExtension xdebug C:\\tools\\php'
|
||||
);
|
||||
|
||||
win32 = await features.addCoverage('nocov', '7.3', 'win32');
|
||||
expect(win32).toContain('');
|
||||
|
||||
win32 = await features.addCoverage('pcov', '7.0', 'win32');
|
||||
expect(win32).toContain('pcov requires php 7.1 or newer');
|
||||
|
||||
win32 = await features.addCoverage('pcov', '5.6', 'win32');
|
||||
expect(win32).toContain('pcov requires php 7.1 or newer');
|
||||
|
||||
win32 = await features.addCoverage('', '7.4', 'win32');
|
||||
expect(win32).toEqual('');
|
||||
});
|
||||
|
||||
it('checking addCoverage on linux', async () => {
|
||||
let linux: string = await features.addCoverage('xdebug', '7.4', 'linux');
|
||||
expect(linux).toContain(
|
||||
'sudo DEBIAN_FRONTEND=noninteractive apt install -y php7.4-xdebug'
|
||||
);
|
||||
|
||||
linux = await features.addCoverage('pcov', '7.4', 'linux');
|
||||
expect(linux).toContain(
|
||||
'sudo DEBIAN_FRONTEND=noninteractive apt install -y php7.4-pcov'
|
||||
);
|
||||
expect(linux).toContain(
|
||||
"sudo phpdismod xdebug || echo 'xdebug not installed'"
|
||||
);
|
||||
expect(linux).toContain("sudo phpenmod pcov || echo 'pcov not installed'");
|
||||
|
||||
linux = await features.addCoverage('', '7.4', 'linux');
|
||||
expect(linux).toEqual('');
|
||||
});
|
||||
|
||||
it('checking addCoverage on darwin', async () => {
|
||||
let darwin: string = await features.addCoverage('xdebug', '7.4', 'darwin');
|
||||
expect(darwin).toContain('sudo pecl install xdebug');
|
||||
|
||||
darwin = await features.addCoverage('xdebug', '5.6', 'darwin');
|
||||
expect(darwin).toContain('sudo pecl install xdebug-2.5.5');
|
||||
|
||||
darwin = await features.addCoverage('pcov', '7.4', 'darwin');
|
||||
expect(darwin).toContain('sudo pecl install pcov');
|
||||
expect(darwin).toContain('sudo sed -i \'\' "/xdebug/d" $ini_file\n');
|
||||
|
||||
darwin = await features.addCoverage('', '7.4', 'win32');
|
||||
expect(darwin).toEqual('');
|
||||
});
|
||||
});
|
||||
|
@ -10,6 +10,12 @@ jest.mock('../src/pecl', () => ({
|
||||
})
|
||||
}));
|
||||
|
||||
jest.mock('@actions/core', () => ({
|
||||
getInput: jest.fn().mockImplementation(key => {
|
||||
return ['setup-php'].indexOf(key) !== -1 ? key : '';
|
||||
})
|
||||
}));
|
||||
|
||||
async function cleanup(path: string): Promise<void> {
|
||||
fs.unlink(path, error => {
|
||||
if (error) {
|
||||
@ -21,7 +27,10 @@ async function cleanup(path: string): Promise<void> {
|
||||
describe('Utils tests', () => {
|
||||
it('checking getInput', async () => {
|
||||
process.env['test'] = 'setup-php';
|
||||
process.env['undefined'] = '';
|
||||
expect(await utils.getInput('test', false)).toBe('setup-php');
|
||||
expect(await utils.getInput('undefined', false)).toBe('');
|
||||
expect(await utils.getInput('setup-php', false)).toBe('setup-php');
|
||||
expect(await utils.getInput('DoesNotExist', false)).toBe('');
|
||||
});
|
||||
|
||||
@ -51,10 +60,13 @@ describe('Utils tests', () => {
|
||||
path.join(__dirname, '../src/win32.ps1'),
|
||||
'utf8'
|
||||
);
|
||||
expect(rc).toBe(await utils.readScript('darwin.sh', '7.4', 'darwin'));
|
||||
expect(darwin).toBe(await utils.readScript('darwin.sh', '7.3', 'darwin'));
|
||||
expect(linux).toBe(await utils.readScript('linux.sh', '7.3', 'linux'));
|
||||
expect(win32).toBe(await utils.readScript('win32.ps1', '7.3', 'win32'));
|
||||
expect(await utils.readScript('darwin.sh', '7.4', 'darwin')).toBe(rc);
|
||||
expect(await utils.readScript('darwin.sh', '7.3', 'darwin')).toBe(darwin);
|
||||
expect(await utils.readScript('linux.sh', '7.4', 'linux')).toBe(linux);
|
||||
expect(await utils.readScript('win32.ps1', '7.3', 'win32')).toBe(win32);
|
||||
expect(await utils.readScript('fedora.sh', '7.3', 'fedora')).toContain(
|
||||
'Platform fedora is not supported'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking writeScripts', async () => {
|
||||
@ -86,6 +98,37 @@ describe('Utils tests', () => {
|
||||
]);
|
||||
});
|
||||
|
||||
it('checking log', async () => {
|
||||
let message: string = 'Test message';
|
||||
|
||||
let warning_log: string = await utils.log(message, 'win32', 'warning');
|
||||
// expect(warning_log).toEqual(
|
||||
// "Write-Host '" + message + "' -ForegroundColor yellow"
|
||||
// );
|
||||
warning_log = await utils.log(message, 'linux', 'warning');
|
||||
expect(warning_log).toEqual('echo -e "\\033[33;1m' + message + '\\033[0m"');
|
||||
warning_log = await utils.log(message, 'darwin', 'warning');
|
||||
expect(warning_log).toEqual('echo -e "\\033[33;1m' + message + '\\033[0m"');
|
||||
|
||||
let error_log: string = await utils.log(message, 'win32', 'error');
|
||||
// expect(error_log).toEqual(
|
||||
// "Write-Host '" + message + "' -ForegroundColor red"
|
||||
// );
|
||||
error_log = await utils.log(message, 'linux', 'error');
|
||||
expect(error_log).toEqual('echo -e "\\033[31;1m' + message + '\\033[0m"');
|
||||
error_log = await utils.log(message, 'darwin', 'error');
|
||||
expect(error_log).toEqual('echo -e "\\033[31;1m' + message + '\\033[0m"');
|
||||
|
||||
let success_log: string = await utils.log(message, 'win32', 'success');
|
||||
// expect(success_log).toEqual(
|
||||
// "Write-Host '" + message + "' -ForegroundColor green"
|
||||
// );
|
||||
success_log = await utils.log(message, 'linux', 'success');
|
||||
expect(success_log).toEqual('echo -e "\\033[32;1m' + message + '\\033[0m"');
|
||||
success_log = await utils.log(message, 'darwin', 'success');
|
||||
expect(success_log).toEqual('echo -e "\\033[32;1m' + message + '\\033[0m"');
|
||||
});
|
||||
|
||||
it('checking checkPECLExtension', async () => {
|
||||
expect(await pecl.checkPECLExtension('extensionDoesNotExist')).toBe(false);
|
||||
expect(await pecl.checkPECLExtension('xdebug')).toBe(true);
|
||||
|
@ -14,6 +14,9 @@ inputs:
|
||||
ini-values-csv:
|
||||
description: '(Optional) Custom values you want to set in php.ini'
|
||||
required: false
|
||||
coverage:
|
||||
description: '(Optional) Driver to calculate code coverage (Accepts: xdebug and pcov)'
|
||||
required: false
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'lib/install.js'
|
||||
|
186
lib/features.js
186
lib/features.js
@ -18,24 +18,32 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const pecl = __importStar(require("./pecl"));
|
||||
function addExtension(extensions, version, os_version) {
|
||||
function addExtension(extension_csv, version, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (os_version === 'win32') {
|
||||
return yield addExtensionWindows(extensions, version);
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return yield addExtensionWindows(extension_csv, version);
|
||||
case 'darwin':
|
||||
return yield addExtensionDarwin(extension_csv, version);
|
||||
case 'linux':
|
||||
return yield addExtensionLinux(extension_csv, version);
|
||||
default:
|
||||
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
else if (os_version === 'linux') {
|
||||
return yield addExtensionLinux(extensions, version);
|
||||
}
|
||||
return yield addExtensionDarwin(extensions);
|
||||
});
|
||||
}
|
||||
exports.addExtension = addExtension;
|
||||
function addINIValues(ini_values_csv, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (os_version === 'win32') {
|
||||
return yield addINIValuesWindows(ini_values_csv);
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return yield addINIValuesWindows(ini_values_csv);
|
||||
case 'darwin':
|
||||
case 'linux':
|
||||
return yield addINIValuesUnix(ini_values_csv);
|
||||
default:
|
||||
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
return yield addINIValuesUnix(ini_values_csv);
|
||||
});
|
||||
}
|
||||
exports.addINIValues = addINIValues;
|
||||
@ -46,14 +54,15 @@ exports.addINIValues = addINIValues;
|
||||
*/
|
||||
function enableExtensionWindows(extension) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return `try {
|
||||
return (`try {
|
||||
$exist = Test-Path -Path $ext_dir\\php_${extension}.dll
|
||||
if(!(php -m | findstr -i ${extension}) -and $exist) {
|
||||
Enable-PhpExtension ${extension} C:\\tools\\php
|
||||
}
|
||||
} catch [Exception] {
|
||||
echo $_
|
||||
}\n`;
|
||||
Enable-PhpExtension ${extension} C:\\tools\\php\n` +
|
||||
(yield utils.log(extension + ' enabled', 'win32', 'success')) +
|
||||
`}
|
||||
} catch [Exception] {\n` +
|
||||
(yield utils.log(extension + ' could not be installed', 'win32', 'error')) +
|
||||
` }\n`);
|
||||
});
|
||||
}
|
||||
exports.enableExtensionWindows = enableExtensionWindows;
|
||||
@ -64,10 +73,10 @@ exports.enableExtensionWindows = enableExtensionWindows;
|
||||
*/
|
||||
function enableExtensionUnix(extension) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return `if [ ! "$(php -m | grep ${extension})" ] && [ -e "$ext_dir/${extension}.so" ]; then
|
||||
echo "extension=${extension}.so" >> 'php -i | grep "Loaded Configuration" | sed -e "s|.*=>\s*||"'
|
||||
echo "${extension} enabled"
|
||||
fi\n`;
|
||||
return (`if [ ! "$(php -m | grep ${extension})" ] && [ -e "$ext_dir/${extension}.so" ]; then
|
||||
echo "extension=${extension}.so" >> 'php -i | grep "Loaded Configuration" | sed -e "s|.*=>\s*||"'\n` +
|
||||
(yield utils.log(extension + ' enabled', 'unix', 'success')) +
|
||||
`; fi\n`);
|
||||
});
|
||||
}
|
||||
exports.enableExtensionUnix = enableExtensionUnix;
|
||||
@ -75,24 +84,37 @@ exports.enableExtensionUnix = enableExtensionUnix;
|
||||
* Install and enable extensions for darwin
|
||||
*
|
||||
* @param extension_csv
|
||||
* @param version
|
||||
*/
|
||||
function addExtensionDarwin(extension_csv) {
|
||||
function addExtensionDarwin(extension_csv, version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let extensions = yield utils.extensionArray(extension_csv);
|
||||
let script = '\n';
|
||||
yield utils.asyncForEach(extensions, function (extension) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
extension = extension.toLowerCase();
|
||||
// add script to enable extension is already installed along with php
|
||||
script += yield enableExtensionUnix(extension);
|
||||
if (yield pecl.checkPECLExtension(extension)) {
|
||||
script +=
|
||||
'if [ ! "$(php -m | grep ' +
|
||||
extension +
|
||||
')" ]; then sudo pecl install ' +
|
||||
extension +
|
||||
' || echo "Couldn\'t find extension: ' +
|
||||
extension +
|
||||
'"; fi\n';
|
||||
switch (yield pecl.checkPECLExtension(extension)) {
|
||||
case true:
|
||||
extension =
|
||||
version === '5.6' && extension === 'xdebug'
|
||||
? 'xdebug-2.5.5'
|
||||
: extension;
|
||||
script +=
|
||||
'if [ ! "$(php -m | grep ' +
|
||||
extension +
|
||||
')" ]; then sudo pecl install ' +
|
||||
extension +
|
||||
' || ' +
|
||||
(yield utils.log("Couldn't install extension: " + extension, 'darwin', 'error')) +
|
||||
'; fi\n';
|
||||
break;
|
||||
case false:
|
||||
default:
|
||||
script +=
|
||||
(yield utils.log('Could not find extension: ' + extension, 'darwin', 'error')) + '\n';
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -112,24 +134,38 @@ function addExtensionWindows(extension_csv, version) {
|
||||
let script = '\n';
|
||||
yield utils.asyncForEach(extensions, function (extension) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
extension = extension.toLowerCase();
|
||||
// add script to enable extension is already installed along with php
|
||||
script += yield enableExtensionWindows(extension);
|
||||
let extension_version = 'stable';
|
||||
if (version == '7.4') {
|
||||
extension_version = 'alpha';
|
||||
let extension_version = '';
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
extension_version = 'alpha';
|
||||
break;
|
||||
case '7.2':
|
||||
default:
|
||||
extension_version = 'stable';
|
||||
break;
|
||||
}
|
||||
if (yield pecl.checkPECLExtension(extension)) {
|
||||
script +=
|
||||
'if(!(php -m | findstr -i ' +
|
||||
extension +
|
||||
')) { ' +
|
||||
'try { Install-PhpExtension ' +
|
||||
extension +
|
||||
' -MinimumStability ' +
|
||||
extension_version +
|
||||
' } catch [Exception] { echo $_; echo "Could not install extension: "' +
|
||||
extension +
|
||||
' } }\n';
|
||||
switch (yield pecl.checkPECLExtension(extension)) {
|
||||
case true:
|
||||
script +=
|
||||
'if(!(php -m | findstr -i ' +
|
||||
extension +
|
||||
')) { ' +
|
||||
'try { Install-PhpExtension ' +
|
||||
extension +
|
||||
' -MinimumStability ' +
|
||||
extension_version +
|
||||
' } catch [Exception] { ' +
|
||||
(yield utils.log('Could not install extension: ' + extension, 'win32', 'error')) +
|
||||
' } }\n';
|
||||
break;
|
||||
case false:
|
||||
default:
|
||||
script +=
|
||||
(yield utils.log('Could not find extension: ' + extension, 'win32', 'error')) + '\n';
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -149,6 +185,7 @@ function addExtensionLinux(extension_csv, version) {
|
||||
let script = '\n';
|
||||
yield utils.asyncForEach(extensions, function (extension) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
extension = extension.toLowerCase();
|
||||
// add script to enable extension is already installed along with php
|
||||
script += yield enableExtensionUnix(extension);
|
||||
script +=
|
||||
@ -158,11 +195,9 @@ function addExtensionLinux(extension_csv, version) {
|
||||
version +
|
||||
'-' +
|
||||
extension +
|
||||
' || echo "Couldn\'t find extension php' +
|
||||
version +
|
||||
'-' +
|
||||
extension +
|
||||
'"; fi\n';
|
||||
' || ' +
|
||||
(yield utils.log("Couldn't find extension php" + version + '-' + extension, 'linux', 'error')) +
|
||||
'; fi\n';
|
||||
});
|
||||
});
|
||||
return script;
|
||||
@ -207,3 +242,54 @@ function addINIValuesWindows(ini_values_csv) {
|
||||
});
|
||||
}
|
||||
exports.addINIValuesWindows = addINIValuesWindows;
|
||||
function addCoverage(coverage, version, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let script = '';
|
||||
script += '\n';
|
||||
coverage = coverage.toLowerCase();
|
||||
// pcov
|
||||
switch (coverage) {
|
||||
case 'pcov':
|
||||
// if version is 7.1 or newer
|
||||
switch (version) {
|
||||
default:
|
||||
script += yield addExtension(coverage, version, os_version);
|
||||
script += yield addINIValues('pcov.enabled=1', os_version);
|
||||
// add command to disable xdebug and enable pcov
|
||||
switch (os_version) {
|
||||
case 'linux':
|
||||
script +=
|
||||
"sudo phpdismod xdebug || echo 'xdebug not installed'\n";
|
||||
script += "sudo phpenmod pcov || echo 'pcov not installed'\n";
|
||||
break;
|
||||
case 'darwin':
|
||||
script += 'sudo sed -i \'\' "/xdebug/d" $ini_file\n';
|
||||
break;
|
||||
case 'win32':
|
||||
script +=
|
||||
'if(php -m | findstr -i xdebug) { Disable-PhpExtension xdebug C:\\tools\\php }\n';
|
||||
break;
|
||||
}
|
||||
// success
|
||||
script += yield utils.log('pcov enabled as coverage driver', os_version, 'success');
|
||||
// version is not supported
|
||||
break;
|
||||
case '5.6':
|
||||
case '7.0':
|
||||
script += yield utils.log('pcov requires php 7.1 or newer', os_version, 'warning');
|
||||
break;
|
||||
}
|
||||
break;
|
||||
//xdebug
|
||||
case 'xdebug':
|
||||
script += yield addExtension(coverage, version, os_version);
|
||||
script += yield utils.log('Xdebug enabled as coverage driver', os_version, 'success');
|
||||
break;
|
||||
// unknown coverage driver
|
||||
default:
|
||||
script = '';
|
||||
}
|
||||
return script;
|
||||
});
|
||||
}
|
||||
exports.addCoverage = addCoverage;
|
||||
|
@ -30,12 +30,14 @@ function run() {
|
||||
let version = yield utils.getInput('php-version', true);
|
||||
let extension_csv = yield utils.getInput('extension-csv', false);
|
||||
let ini_values_csv = yield utils.getInput('ini-values-csv', false);
|
||||
let coverage = yield utils.getInput('coverage', false);
|
||||
let os_version = process.platform;
|
||||
// check the os version and run the respective script
|
||||
if (os_version == 'darwin') {
|
||||
let darwin = yield utils.readScript('darwin.sh', version, os_version);
|
||||
darwin += yield features.addExtension(extension_csv, version, os_version);
|
||||
darwin += yield features.addINIValues(ini_values_csv, os_version);
|
||||
darwin += yield features.addCoverage(coverage, version, os_version);
|
||||
yield utils.writeScript('darwin.sh', version, darwin);
|
||||
yield exec_1.exec('sh -x ./' + version + 'darwin.sh ' + version);
|
||||
}
|
||||
@ -43,6 +45,7 @@ function run() {
|
||||
let windows = yield utils.readScript('win32.ps1', version, os_version);
|
||||
windows += yield features.addExtension(extension_csv, version, os_version);
|
||||
windows += yield features.addINIValues(ini_values_csv, os_version);
|
||||
windows += yield features.addCoverage(coverage, version, os_version);
|
||||
yield utils.writeScript('win32.ps1', version, windows);
|
||||
yield exec_1.exec('powershell .\\' + version + 'win32.ps1 -version ' + version);
|
||||
}
|
||||
@ -50,6 +53,7 @@ function run() {
|
||||
let linux = yield utils.readScript('linux.sh', version, os_version);
|
||||
linux += yield features.addExtension(extension_csv, version, os_version);
|
||||
linux += yield features.addINIValues(ini_values_csv, os_version);
|
||||
linux += yield features.addCoverage(coverage, version, os_version);
|
||||
yield utils.writeScript('linux.sh', version, linux);
|
||||
yield exec_1.exec('./' + version + 'linux.sh ' + version);
|
||||
}
|
||||
|
49
lib/utils.js
49
lib/utils.js
@ -22,10 +22,13 @@ const core = __importStar(require("@actions/core"));
|
||||
function getInput(name, mandatory) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let input = process.env[name];
|
||||
if (!input) {
|
||||
input = core.getInput(name, { required: mandatory });
|
||||
switch (input) {
|
||||
case '':
|
||||
case undefined:
|
||||
return core.getInput(name, { required: mandatory });
|
||||
default:
|
||||
return input;
|
||||
}
|
||||
return input;
|
||||
});
|
||||
}
|
||||
exports.getInput = getInput;
|
||||
@ -53,10 +56,21 @@ exports.asyncForEach = asyncForEach;
|
||||
*/
|
||||
function readScript(filename, version, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (version === '7.4' && os_version === 'darwin') {
|
||||
return fs.readFileSync(path.join(__dirname, '../src/7.4.sh'), 'utf8');
|
||||
switch (os_version) {
|
||||
case 'darwin':
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
return fs.readFileSync(path.join(__dirname, '../src/7.4.sh'), 'utf8');
|
||||
case '7.3':
|
||||
default:
|
||||
return fs.readFileSync(path.join(__dirname, '../src/' + filename), 'utf8');
|
||||
}
|
||||
case 'win32':
|
||||
case 'linux':
|
||||
return fs.readFileSync(path.join(__dirname, '../src/' + filename), 'utf8');
|
||||
default:
|
||||
return yield log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
return fs.readFileSync(path.join(__dirname, '../src/' + filename), 'utf8');
|
||||
});
|
||||
}
|
||||
exports.readScript = readScript;
|
||||
@ -102,3 +116,26 @@ function INIArray(ini_values_csv) {
|
||||
});
|
||||
}
|
||||
exports.INIArray = INIArray;
|
||||
function log(message, os_version, log_type) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
const color = {
|
||||
error: 'red',
|
||||
success: 'green',
|
||||
warning: 'yellow'
|
||||
};
|
||||
return "Write-Host '" + message + "' -ForegroundColor " + color[log_type];
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
default:
|
||||
const unix_color = {
|
||||
error: '31',
|
||||
success: '32',
|
||||
warning: '33'
|
||||
};
|
||||
return ('echo -e "\\033[' + unix_color[log_type] + ';1m' + message + '\\033[0m"');
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.log = log;
|
||||
|
7
node_modules/@actions/core/LICENSE.md
generated
vendored
7
node_modules/@actions/core/LICENSE.md
generated
vendored
@ -1,7 +0,0 @@
|
||||
Copyright 2019 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
8
node_modules/@actions/core/lib/command.js
generated
vendored
8
node_modules/@actions/core/lib/command.js
generated
vendored
@ -20,7 +20,7 @@ function issue(name, message = '') {
|
||||
issueCommand(name, {}, message);
|
||||
}
|
||||
exports.issue = issue;
|
||||
const CMD_PREFIX = '##[';
|
||||
const CMD_STRING = '::';
|
||||
class Command {
|
||||
constructor(command, properties, message) {
|
||||
if (!command) {
|
||||
@ -31,7 +31,7 @@ class Command {
|
||||
this.message = message;
|
||||
}
|
||||
toString() {
|
||||
let cmdStr = CMD_PREFIX + this.command;
|
||||
let cmdStr = CMD_STRING + this.command;
|
||||
if (this.properties && Object.keys(this.properties).length > 0) {
|
||||
cmdStr += ' ';
|
||||
for (const key in this.properties) {
|
||||
@ -40,12 +40,12 @@ class Command {
|
||||
if (val) {
|
||||
// safely append the val - avoid blowing up when attempting to
|
||||
// call .replace() if message is not a string for some reason
|
||||
cmdStr += `${key}=${escape(`${val || ''}`)};`;
|
||||
cmdStr += `${key}=${escape(`${val || ''}`)},`;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cmdStr += ']';
|
||||
cmdStr += CMD_STRING;
|
||||
// safely append the message - avoid blowing up when attempting to
|
||||
// call .replace() if message is not a string for some reason
|
||||
const message = `${this.message || ''}`;
|
||||
|
2
node_modules/@actions/core/lib/command.js.map
generated
vendored
2
node_modules/@actions/core/lib/command.js.map
generated
vendored
@ -1 +1 @@
|
||||
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AAQxB;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,UAAkB,EAAE;IACtD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,8DAA8D;wBAC9D,6DAA6D;wBAC7D,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA;qBAC9C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,CAAA;QAEb,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAA;QACvC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;QAE7B,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"}
|
||||
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AAQxB;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,UAAkB,EAAE;IACtD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,8DAA8D;wBAC9D,6DAA6D;wBAC7D,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA;qBAC9C;iBACF;aACF;SACF;QAED,MAAM,IAAI,UAAU,CAAA;QAEpB,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAA;QACvC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;QAE7B,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"}
|
5
node_modules/@actions/core/lib/core.d.ts
generated
vendored
5
node_modules/@actions/core/lib/core.d.ts
generated
vendored
@ -71,6 +71,11 @@ export declare function error(message: string): void;
|
||||
* @param message warning issue message
|
||||
*/
|
||||
export declare function warning(message: string): void;
|
||||
/**
|
||||
* Writes info to log with console.log.
|
||||
* @param message info message
|
||||
*/
|
||||
export declare function info(message: string): void;
|
||||
/**
|
||||
* Begin an output group.
|
||||
*
|
||||
|
11
node_modules/@actions/core/lib/core.js
generated
vendored
11
node_modules/@actions/core/lib/core.js
generated
vendored
@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const command_1 = require("./command");
|
||||
const os = require("os");
|
||||
const path = require("path");
|
||||
/**
|
||||
* The code to exit an action
|
||||
@ -68,7 +69,7 @@ exports.addPath = addPath;
|
||||
* @returns string
|
||||
*/
|
||||
function getInput(name, options) {
|
||||
const val = process.env[`INPUT_${name.replace(' ', '_').toUpperCase()}`] || '';
|
||||
const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
|
||||
if (options && options.required && !val) {
|
||||
throw new Error(`Input required and not supplied: ${name}`);
|
||||
}
|
||||
@ -125,6 +126,14 @@ function warning(message) {
|
||||
command_1.issue('warning', message);
|
||||
}
|
||||
exports.warning = warning;
|
||||
/**
|
||||
* Writes info to log with console.log.
|
||||
* @param message info message
|
||||
*/
|
||||
function info(message) {
|
||||
process.stdout.write(message + os.EOL);
|
||||
}
|
||||
exports.info = info;
|
||||
/**
|
||||
* Begin an output group.
|
||||
*
|
||||
|
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
@ -1 +1 @@
|
||||
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
21
node_modules/@actions/core/package.json
generated
vendored
21
node_modules/@actions/core/package.json
generated
vendored
@ -1,33 +1,33 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"@actions/core@1.1.0",
|
||||
"@actions/core@1.1.1",
|
||||
"E:\\python\\setup-php"
|
||||
]
|
||||
],
|
||||
"_from": "@actions/core@1.1.0",
|
||||
"_id": "@actions/core@1.1.0",
|
||||
"_from": "@actions/core@1.1.1",
|
||||
"_id": "@actions/core@1.1.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-KKpo3xzo0Zsikni9tbOsEQkxZBGDsYSJZNkTvmo0gPSXrc98TBOcdTvKwwjitjkjHkreTggWdB1ACiAFVgsuzA==",
|
||||
"_integrity": "sha512-O5G6EmlzTVsng7VSpNtszIoQq6kOgMGNTFB/hmwKNNA4V71JyxImCIrL27vVHCt2Cb3ImkaCr6o27C2MV9Ylwg==",
|
||||
"_location": "/@actions/core",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "@actions/core@1.1.0",
|
||||
"raw": "@actions/core@1.1.1",
|
||||
"name": "@actions/core",
|
||||
"escapedName": "@actions%2fcore",
|
||||
"scope": "@actions",
|
||||
"rawSpec": "1.1.0",
|
||||
"rawSpec": "1.1.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.1.0"
|
||||
"fetchSpec": "1.1.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/",
|
||||
"/@actions/tool-cache"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.1.0.tgz",
|
||||
"_spec": "1.1.0",
|
||||
"_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.1.1.tgz",
|
||||
"_spec": "1.1.1",
|
||||
"_where": "E:\\python\\setup-php",
|
||||
"bugs": {
|
||||
"url": "https://github.com/actions/toolkit/issues"
|
||||
@ -43,7 +43,6 @@
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"gitHead": "a2ab4bcf78e4f7080f0d45856e6eeba16f0bbc52",
|
||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/core",
|
||||
"keywords": [
|
||||
"github",
|
||||
@ -64,5 +63,5 @@
|
||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||
"tsc": "tsc"
|
||||
},
|
||||
"version": "1.1.0"
|
||||
"version": "1.1.1"
|
||||
}
|
||||
|
7
node_modules/@actions/tool-cache/LICENSE.md
generated
vendored
7
node_modules/@actions/tool-cache/LICENSE.md
generated
vendored
@ -1,7 +0,0 @@
|
||||
Copyright 2019 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
10
node_modules/@actions/tool-cache/README.md
generated
vendored
10
node_modules/@actions/tool-cache/README.md
generated
vendored
@ -11,7 +11,7 @@ You can use this to download tools (or other files) from a download URL:
|
||||
```js
|
||||
const tc = require('@actions/tool-cache');
|
||||
|
||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||
const node12Path = await tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||
```
|
||||
|
||||
#### Extract
|
||||
@ -22,15 +22,15 @@ These can then be extracted in platform specific ways:
|
||||
const tc = require('@actions/tool-cache');
|
||||
|
||||
if (process.platform === 'win32') {
|
||||
const node12Path = tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip');
|
||||
const node12Path = tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip');
|
||||
const node12ExtractedFolder = await tc.extractZip(node12Path, 'path/to/extract/to');
|
||||
|
||||
// Or alternately
|
||||
const node12Path = tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z');
|
||||
const node12Path = tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z');
|
||||
const node12ExtractedFolder = await tc.extract7z(node12Path, 'path/to/extract/to');
|
||||
}
|
||||
else {
|
||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||
const node12Path = await tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
||||
}
|
||||
```
|
||||
@ -45,7 +45,7 @@ You'll often want to add it to the path as part of this step:
|
||||
const tc = require('@actions/tool-cache');
|
||||
const core = require('@actions/core');
|
||||
|
||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||
const node12Path = await tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
||||
|
||||
const cachedPath = await tc.cacheDir(node12ExtractedFolder, 'node', '12.7.0');
|
||||
|
15
node_modules/@actions/tool-cache/lib/tool-cache.js
generated
vendored
15
node_modules/@actions/tool-cache/lib/tool-cache.js
generated
vendored
@ -218,12 +218,7 @@ function extractZip(file, dest) {
|
||||
yield extractZipWin(file, dest);
|
||||
}
|
||||
else {
|
||||
if (process.platform === 'darwin') {
|
||||
yield extractZipDarwin(file, dest);
|
||||
}
|
||||
else {
|
||||
yield extractZipNix(file, dest);
|
||||
}
|
||||
yield extractZipNix(file, dest);
|
||||
}
|
||||
return dest;
|
||||
});
|
||||
@ -252,13 +247,7 @@ function extractZipWin(file, dest) {
|
||||
}
|
||||
function extractZipNix(file, dest) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const unzipPath = path.join(__dirname, '..', 'scripts', 'externals', 'unzip');
|
||||
yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest });
|
||||
});
|
||||
}
|
||||
function extractZipDarwin(file, dest) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const unzipPath = path.join(__dirname, '..', 'scripts', 'externals', 'unzip-darwin');
|
||||
const unzipPath = yield io.which('unzip');
|
||||
yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest });
|
||||
});
|
||||
}
|
||||
|
2
node_modules/@actions/tool-cache/lib/tool-cache.js.map
generated
vendored
2
node_modules/@actions/tool-cache/lib/tool-cache.js.map
generated
vendored
File diff suppressed because one or more lines are too long
21
node_modules/@actions/tool-cache/package.json
generated
vendored
21
node_modules/@actions/tool-cache/package.json
generated
vendored
@ -1,32 +1,32 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"@actions/tool-cache@1.1.1",
|
||||
"@actions/tool-cache@1.1.2",
|
||||
"E:\\python\\setup-php"
|
||||
]
|
||||
],
|
||||
"_from": "@actions/tool-cache@1.1.1",
|
||||
"_id": "@actions/tool-cache@1.1.1",
|
||||
"_from": "@actions/tool-cache@1.1.2",
|
||||
"_id": "@actions/tool-cache@1.1.2",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-AILekrrj/L4N/5z5TGtUKVie4nKjxDioCgOEymyYxzPhGfjIxfE71tN2VTTpiICEWJ883rPRj2+WinTr1b6yVA==",
|
||||
"_integrity": "sha512-IJczPaZr02ECa3Lgws/TJEVco9tjOujiQSZbO3dHuXXjhd5vrUtfOgGwhmz3/f97L910OraPZ8SknofUk6RvOQ==",
|
||||
"_location": "/@actions/tool-cache",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "@actions/tool-cache@1.1.1",
|
||||
"raw": "@actions/tool-cache@1.1.2",
|
||||
"name": "@actions/tool-cache",
|
||||
"escapedName": "@actions%2ftool-cache",
|
||||
"scope": "@actions",
|
||||
"rawSpec": "1.1.1",
|
||||
"rawSpec": "1.1.2",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.1.1"
|
||||
"fetchSpec": "1.1.2"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.1.1.tgz",
|
||||
"_spec": "1.1.1",
|
||||
"_resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.1.2.tgz",
|
||||
"_spec": "1.1.2",
|
||||
"_where": "E:\\python\\setup-php",
|
||||
"bugs": {
|
||||
"url": "https://github.com/actions/toolkit/issues"
|
||||
@ -54,7 +54,6 @@
|
||||
"lib",
|
||||
"scripts"
|
||||
],
|
||||
"gitHead": "a2ab4bcf78e4f7080f0d45856e6eeba16f0bbc52",
|
||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||
"keywords": [
|
||||
"github",
|
||||
@ -75,5 +74,5 @@
|
||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||
"tsc": "tsc"
|
||||
},
|
||||
"version": "1.1.1"
|
||||
"version": "1.1.2"
|
||||
}
|
||||
|
BIN
node_modules/@actions/tool-cache/scripts/externals/unzip
generated
vendored
BIN
node_modules/@actions/tool-cache/scripts/externals/unzip
generated
vendored
Binary file not shown.
BIN
node_modules/@actions/tool-cache/scripts/externals/unzip-darwin
generated
vendored
BIN
node_modules/@actions/tool-cache/scripts/externals/unzip-darwin
generated
vendored
Binary file not shown.
188
package-lock.json
generated
188
package-lock.json
generated
@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "setup-php",
|
||||
"version": "1.3.4",
|
||||
"version": "1.3.5",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@actions/core": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.1.0.tgz",
|
||||
"integrity": "sha512-KKpo3xzo0Zsikni9tbOsEQkxZBGDsYSJZNkTvmo0gPSXrc98TBOcdTvKwwjitjkjHkreTggWdB1ACiAFVgsuzA=="
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.1.1.tgz",
|
||||
"integrity": "sha512-O5G6EmlzTVsng7VSpNtszIoQq6kOgMGNTFB/hmwKNNA4V71JyxImCIrL27vVHCt2Cb3ImkaCr6o27C2MV9Ylwg=="
|
||||
},
|
||||
"@actions/exec": {
|
||||
"version": "1.0.1",
|
||||
@ -20,9 +20,9 @@
|
||||
"integrity": "sha512-rhq+tfZukbtaus7xyUtwKfuiCRXd1hWSfmJNEpFgBQJ4woqPEpsBw04awicjwz9tyG2/MVhAEMfVn664Cri5zA=="
|
||||
},
|
||||
"@actions/tool-cache": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.1.1.tgz",
|
||||
"integrity": "sha512-AILekrrj/L4N/5z5TGtUKVie4nKjxDioCgOEymyYxzPhGfjIxfE71tN2VTTpiICEWJ883rPRj2+WinTr1b6yVA==",
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.1.2.tgz",
|
||||
"integrity": "sha512-IJczPaZr02ECa3Lgws/TJEVco9tjOujiQSZbO3dHuXXjhd5vrUtfOgGwhmz3/f97L910OraPZ8SknofUk6RvOQ==",
|
||||
"requires": {
|
||||
"@actions/core": "^1.1.0",
|
||||
"@actions/exec": "^1.0.1",
|
||||
@ -42,18 +42,18 @@
|
||||
}
|
||||
},
|
||||
"@babel/core": {
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
|
||||
"integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz",
|
||||
"integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.5.5",
|
||||
"@babel/generator": "^7.5.5",
|
||||
"@babel/helpers": "^7.5.5",
|
||||
"@babel/parser": "^7.5.5",
|
||||
"@babel/template": "^7.4.4",
|
||||
"@babel/traverse": "^7.5.5",
|
||||
"@babel/types": "^7.5.5",
|
||||
"@babel/generator": "^7.6.2",
|
||||
"@babel/helpers": "^7.6.2",
|
||||
"@babel/parser": "^7.6.2",
|
||||
"@babel/template": "^7.6.0",
|
||||
"@babel/traverse": "^7.6.2",
|
||||
"@babel/types": "^7.6.0",
|
||||
"convert-source-map": "^1.1.0",
|
||||
"debug": "^4.1.0",
|
||||
"json5": "^2.1.0",
|
||||
@ -93,16 +93,15 @@
|
||||
}
|
||||
},
|
||||
"@babel/generator": {
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
|
||||
"integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz",
|
||||
"integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.5.5",
|
||||
"@babel/types": "^7.6.0",
|
||||
"jsesc": "^2.5.1",
|
||||
"lodash": "^4.17.13",
|
||||
"source-map": "^0.5.0",
|
||||
"trim-right": "^1.0.1"
|
||||
"source-map": "^0.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
@ -149,14 +148,14 @@
|
||||
}
|
||||
},
|
||||
"@babel/helpers": {
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
|
||||
"integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz",
|
||||
"integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/template": "^7.4.4",
|
||||
"@babel/traverse": "^7.5.5",
|
||||
"@babel/types": "^7.5.5"
|
||||
"@babel/template": "^7.6.0",
|
||||
"@babel/traverse": "^7.6.2",
|
||||
"@babel/types": "^7.6.0"
|
||||
}
|
||||
},
|
||||
"@babel/highlight": {
|
||||
@ -171,9 +170,9 @@
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
|
||||
"integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz",
|
||||
"integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/plugin-syntax-object-rest-spread": {
|
||||
@ -186,28 +185,28 @@
|
||||
}
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
|
||||
"integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
|
||||
"version": "7.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz",
|
||||
"integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"@babel/parser": "^7.4.4",
|
||||
"@babel/types": "^7.4.4"
|
||||
"@babel/parser": "^7.6.0",
|
||||
"@babel/types": "^7.6.0"
|
||||
}
|
||||
},
|
||||
"@babel/traverse": {
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
|
||||
"integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz",
|
||||
"integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.5.5",
|
||||
"@babel/generator": "^7.5.5",
|
||||
"@babel/generator": "^7.6.2",
|
||||
"@babel/helper-function-name": "^7.1.0",
|
||||
"@babel/helper-split-export-declaration": "^7.4.4",
|
||||
"@babel/parser": "^7.5.5",
|
||||
"@babel/types": "^7.5.5",
|
||||
"@babel/parser": "^7.6.2",
|
||||
"@babel/types": "^7.6.0",
|
||||
"debug": "^4.1.0",
|
||||
"globals": "^11.1.0",
|
||||
"lodash": "^4.17.13"
|
||||
@ -231,9 +230,9 @@
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
|
||||
"integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
|
||||
"version": "7.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz",
|
||||
"integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esutils": "^2.0.2",
|
||||
@ -473,9 +472,9 @@
|
||||
}
|
||||
},
|
||||
"@types/babel__generator": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.0.2.tgz",
|
||||
"integrity": "sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==",
|
||||
"version": "7.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz",
|
||||
"integrity": "sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.0.0"
|
||||
@ -541,9 +540,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "12.7.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.4.tgz",
|
||||
"integrity": "sha512-W0+n1Y+gK/8G2P/piTkBBN38Qc5Q1ZSO6B5H3QmPCUewaiXOo2GCAWZ4ElZCcNhjJuBSUSLGFUJnmlCn5+nxOQ==",
|
||||
"version": "12.7.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.7.tgz",
|
||||
"integrity": "sha512-4jUncNe2tj1nmrO/34PsRpZqYVnRV1svbU78cKhuQKkMntKB/AmdLyGgswcZKjFHEHGpiY8pVD8CuVI55nP54w==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/normalize-package-data": {
|
||||
@ -568,15 +567,15 @@
|
||||
}
|
||||
},
|
||||
"@types/yargs-parser": {
|
||||
"version": "13.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.0.0.tgz",
|
||||
"integrity": "sha512-wBlsw+8n21e6eTd4yVv8YD/E3xq0O6nNnJIquutAsFGE7EyMKz7W6RNT6BRu1SmdgmlCZ9tb0X+j+D6HGr8pZw==",
|
||||
"version": "13.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz",
|
||||
"integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==",
|
||||
"dev": true
|
||||
},
|
||||
"abab": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.1.tgz",
|
||||
"integrity": "sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz",
|
||||
"integrity": "sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg==",
|
||||
"dev": true
|
||||
},
|
||||
"acorn": {
|
||||
@ -586,9 +585,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"acorn-globals": {
|
||||
"version": "4.3.3",
|
||||
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.3.tgz",
|
||||
"integrity": "sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ==",
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
|
||||
"integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"acorn": "^6.0.1",
|
||||
@ -1353,9 +1352,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
@ -1371,9 +1370,9 @@
|
||||
}
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.1.tgz",
|
||||
"integrity": "sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA==",
|
||||
"version": "1.14.2",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
|
||||
"integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.0",
|
||||
@ -2343,9 +2342,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.2.0.tgz",
|
||||
"integrity": "sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw==",
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.3.1.tgz",
|
||||
"integrity": "sha512-c0HoNHzDiHpBt4Kqe99N8tdLPKAnGCQ73gYMPWtAYM4PwGnf7xl8PBUHJqh9ijlzt2uQKaSRxbXRt+rZ7M2/kA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"neo-async": "^2.6.0",
|
||||
@ -3478,6 +3477,12 @@
|
||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.memoize": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.sortby": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||
@ -4117,9 +4122,9 @@
|
||||
}
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.3.1.tgz",
|
||||
"integrity": "sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA==",
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
|
||||
"integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
|
||||
"dev": true
|
||||
},
|
||||
"pump": {
|
||||
@ -4778,23 +4783,23 @@
|
||||
}
|
||||
},
|
||||
"string.prototype.trimleft": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz",
|
||||
"integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
|
||||
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.2",
|
||||
"function-bind": "^1.0.2"
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimright": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz",
|
||||
"integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
|
||||
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.2",
|
||||
"function-bind": "^1.0.2"
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
@ -4924,22 +4929,17 @@
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"trim-right": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
|
||||
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
|
||||
"dev": true
|
||||
},
|
||||
"ts-jest": {
|
||||
"version": "24.0.2",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.0.2.tgz",
|
||||
"integrity": "sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw==",
|
||||
"version": "24.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.1.0.tgz",
|
||||
"integrity": "sha512-HEGfrIEAZKfu1pkaxB9au17b1d9b56YZSqz5eCVE8mX68+5reOvlM93xGOzzCREIov9mdH7JBG+s0UyNAqr0tQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bs-logger": "0.x",
|
||||
"buffer-from": "1.x",
|
||||
"fast-json-stable-stringify": "2.x",
|
||||
"json5": "2.x",
|
||||
"lodash.memoize": "4.x",
|
||||
"make-error": "1.x",
|
||||
"mkdirp": "0.x",
|
||||
"resolve": "1.x",
|
||||
@ -5015,9 +5015,9 @@
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.2.tgz",
|
||||
"integrity": "sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==",
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz",
|
||||
"integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
|
10
package.json
10
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "setup-php",
|
||||
"version": "1.3.4",
|
||||
"version": "1.3.5",
|
||||
"private": false,
|
||||
"description": "Setup php action",
|
||||
"main": "lib/setup-php.js",
|
||||
@ -28,13 +28,13 @@
|
||||
"typed-rest-client": "^1.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^24.0.13",
|
||||
"@types/jest": "^24.0.18",
|
||||
"@types/node": "^12.0.4",
|
||||
"husky": "^2.3.0",
|
||||
"jest": "^24.8.0",
|
||||
"jest-circus": "^24.7.1",
|
||||
"jest": "^24.9.0",
|
||||
"jest-circus": "^24.9.0",
|
||||
"prettier": "^1.17.1",
|
||||
"ts-jest": "^24.0.2",
|
||||
"ts-jest": "^24.1.0",
|
||||
"typescript": "^3.5.1"
|
||||
},
|
||||
"husky": {
|
||||
|
236
src/features.ts
236
src/features.ts
@ -2,24 +2,40 @@ import * as utils from './utils';
|
||||
import * as pecl from './pecl';
|
||||
|
||||
export async function addExtension(
|
||||
extensions: string,
|
||||
extension_csv: string,
|
||||
version: string,
|
||||
os_version: string
|
||||
): Promise<string> {
|
||||
if (os_version === 'win32') {
|
||||
return await addExtensionWindows(extensions, version);
|
||||
} else if (os_version === 'linux') {
|
||||
return await addExtensionLinux(extensions, version);
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return await addExtensionWindows(extension_csv, version);
|
||||
case 'darwin':
|
||||
return await addExtensionDarwin(extension_csv, version);
|
||||
case 'linux':
|
||||
return await addExtensionLinux(extension_csv, version);
|
||||
default:
|
||||
return await utils.log(
|
||||
'Platform ' + os_version + ' is not supported',
|
||||
os_version,
|
||||
'error'
|
||||
);
|
||||
}
|
||||
|
||||
return await addExtensionDarwin(extensions);
|
||||
}
|
||||
|
||||
export async function addINIValues(ini_values_csv: string, os_version: string) {
|
||||
if (os_version === 'win32') {
|
||||
return await addINIValuesWindows(ini_values_csv);
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return await addINIValuesWindows(ini_values_csv);
|
||||
case 'darwin':
|
||||
case 'linux':
|
||||
return await addINIValuesUnix(ini_values_csv);
|
||||
default:
|
||||
return await utils.log(
|
||||
'Platform ' + os_version + ' is not supported',
|
||||
os_version,
|
||||
'error'
|
||||
);
|
||||
}
|
||||
return await addINIValuesUnix(ini_values_csv);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -28,14 +44,17 @@ export async function addINIValues(ini_values_csv: string, os_version: string) {
|
||||
* @param extension
|
||||
*/
|
||||
export async function enableExtensionWindows(extension: string) {
|
||||
return `try {
|
||||
return (
|
||||
`try {
|
||||
$exist = Test-Path -Path $ext_dir\\php_${extension}.dll
|
||||
if(!(php -m | findstr -i ${extension}) -and $exist) {
|
||||
Enable-PhpExtension ${extension} C:\\tools\\php
|
||||
}
|
||||
} catch [Exception] {
|
||||
echo $_
|
||||
}\n`;
|
||||
Enable-PhpExtension ${extension} C:\\tools\\php\n` +
|
||||
(await utils.log(extension + ' enabled', 'win32', 'success')) +
|
||||
`}
|
||||
} catch [Exception] {\n` +
|
||||
(await utils.log(extension + ' could not be installed', 'win32', 'error')) +
|
||||
` }\n`
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,34 +63,58 @@ export async function enableExtensionWindows(extension: string) {
|
||||
* @param extension
|
||||
*/
|
||||
export async function enableExtensionUnix(extension: string) {
|
||||
return `if [ ! "$(php -m | grep ${extension})" ] && [ -e "$ext_dir/${extension}.so" ]; then
|
||||
echo "extension=${extension}.so" >> 'php -i | grep "Loaded Configuration" | sed -e "s|.*=>\s*||"'
|
||||
echo "${extension} enabled"
|
||||
fi\n`;
|
||||
return (
|
||||
`if [ ! "$(php -m | grep ${extension})" ] && [ -e "$ext_dir/${extension}.so" ]; then
|
||||
echo "extension=${extension}.so" >> 'php -i | grep "Loaded Configuration" | sed -e "s|.*=>\s*||"'\n` +
|
||||
(await utils.log(extension + ' enabled', 'unix', 'success')) +
|
||||
`; fi\n`
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Install and enable extensions for darwin
|
||||
*
|
||||
* @param extension_csv
|
||||
* @param version
|
||||
*/
|
||||
export async function addExtensionDarwin(
|
||||
extension_csv: string
|
||||
extension_csv: string,
|
||||
version: string
|
||||
): Promise<string> {
|
||||
let extensions: Array<string> = await utils.extensionArray(extension_csv);
|
||||
let script: string = '\n';
|
||||
await utils.asyncForEach(extensions, async function(extension: string) {
|
||||
extension = extension.toLowerCase();
|
||||
// add script to enable extension is already installed along with php
|
||||
script += await enableExtensionUnix(extension);
|
||||
if (await pecl.checkPECLExtension(extension)) {
|
||||
script +=
|
||||
'if [ ! "$(php -m | grep ' +
|
||||
extension +
|
||||
')" ]; then sudo pecl install ' +
|
||||
extension +
|
||||
' || echo "Couldn\'t find extension: ' +
|
||||
extension +
|
||||
'"; fi\n';
|
||||
switch (await pecl.checkPECLExtension(extension)) {
|
||||
case true:
|
||||
extension =
|
||||
version === '5.6' && extension === 'xdebug'
|
||||
? 'xdebug-2.5.5'
|
||||
: extension;
|
||||
script +=
|
||||
'if [ ! "$(php -m | grep ' +
|
||||
extension +
|
||||
')" ]; then sudo pecl install ' +
|
||||
extension +
|
||||
' || ' +
|
||||
(await utils.log(
|
||||
"Couldn't install extension: " + extension,
|
||||
'darwin',
|
||||
'error'
|
||||
)) +
|
||||
'; fi\n';
|
||||
break;
|
||||
case false:
|
||||
default:
|
||||
script +=
|
||||
(await utils.log(
|
||||
'Could not find extension: ' + extension,
|
||||
'darwin',
|
||||
'error'
|
||||
)) + '\n';
|
||||
break;
|
||||
}
|
||||
});
|
||||
return script;
|
||||
@ -90,24 +133,47 @@ export async function addExtensionWindows(
|
||||
let extensions: Array<string> = await utils.extensionArray(extension_csv);
|
||||
let script: string = '\n';
|
||||
await utils.asyncForEach(extensions, async function(extension: string) {
|
||||
extension = extension.toLowerCase();
|
||||
// add script to enable extension is already installed along with php
|
||||
script += await enableExtensionWindows(extension);
|
||||
let extension_version = 'stable';
|
||||
if (version == '7.4') {
|
||||
extension_version = 'alpha';
|
||||
let extension_version: string = '';
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
extension_version = 'alpha';
|
||||
break;
|
||||
case '7.2':
|
||||
default:
|
||||
extension_version = 'stable';
|
||||
break;
|
||||
}
|
||||
if (await pecl.checkPECLExtension(extension)) {
|
||||
script +=
|
||||
'if(!(php -m | findstr -i ' +
|
||||
extension +
|
||||
')) { ' +
|
||||
'try { Install-PhpExtension ' +
|
||||
extension +
|
||||
' -MinimumStability ' +
|
||||
extension_version +
|
||||
' } catch [Exception] { echo $_; echo "Could not install extension: "' +
|
||||
extension +
|
||||
' } }\n';
|
||||
|
||||
switch (await pecl.checkPECLExtension(extension)) {
|
||||
case true:
|
||||
script +=
|
||||
'if(!(php -m | findstr -i ' +
|
||||
extension +
|
||||
')) { ' +
|
||||
'try { Install-PhpExtension ' +
|
||||
extension +
|
||||
' -MinimumStability ' +
|
||||
extension_version +
|
||||
' } catch [Exception] { ' +
|
||||
(await utils.log(
|
||||
'Could not install extension: ' + extension,
|
||||
'win32',
|
||||
'error'
|
||||
)) +
|
||||
' } }\n';
|
||||
break;
|
||||
case false:
|
||||
default:
|
||||
script +=
|
||||
(await utils.log(
|
||||
'Could not find extension: ' + extension,
|
||||
'win32',
|
||||
'error'
|
||||
)) + '\n';
|
||||
break;
|
||||
}
|
||||
});
|
||||
return script;
|
||||
@ -126,6 +192,7 @@ export async function addExtensionLinux(
|
||||
let extensions: Array<string> = await utils.extensionArray(extension_csv);
|
||||
let script: string = '\n';
|
||||
await utils.asyncForEach(extensions, async function(extension: string) {
|
||||
extension = extension.toLowerCase();
|
||||
// add script to enable extension is already installed along with php
|
||||
script += await enableExtensionUnix(extension);
|
||||
script +=
|
||||
@ -135,11 +202,13 @@ export async function addExtensionLinux(
|
||||
version +
|
||||
'-' +
|
||||
extension +
|
||||
' || echo "Couldn\'t find extension php' +
|
||||
version +
|
||||
'-' +
|
||||
extension +
|
||||
'"; fi\n';
|
||||
' || ' +
|
||||
(await utils.log(
|
||||
"Couldn't find extension php" + version + '-' + extension,
|
||||
'linux',
|
||||
'error'
|
||||
)) +
|
||||
'; fi\n';
|
||||
});
|
||||
return script;
|
||||
}
|
||||
@ -177,3 +246,70 @@ export async function addINIValuesWindows(
|
||||
});
|
||||
return script;
|
||||
}
|
||||
|
||||
export async function addCoverage(
|
||||
coverage: string,
|
||||
version: string,
|
||||
os_version: string
|
||||
): Promise<string> {
|
||||
let script: string = '';
|
||||
script += '\n';
|
||||
coverage = coverage.toLowerCase();
|
||||
// pcov
|
||||
switch (coverage) {
|
||||
case 'pcov':
|
||||
// if version is 7.1 or newer
|
||||
switch (version) {
|
||||
default:
|
||||
script += await addExtension(coverage, version, os_version);
|
||||
script += await addINIValues('pcov.enabled=1', os_version);
|
||||
|
||||
// add command to disable xdebug and enable pcov
|
||||
switch (os_version) {
|
||||
case 'linux':
|
||||
script +=
|
||||
"sudo phpdismod xdebug || echo 'xdebug not installed'\n";
|
||||
script += "sudo phpenmod pcov || echo 'pcov not installed'\n";
|
||||
break;
|
||||
case 'darwin':
|
||||
script += 'sudo sed -i \'\' "/xdebug/d" $ini_file\n';
|
||||
break;
|
||||
case 'win32':
|
||||
script +=
|
||||
'if(php -m | findstr -i xdebug) { Disable-PhpExtension xdebug C:\\tools\\php }\n';
|
||||
break;
|
||||
}
|
||||
|
||||
// success
|
||||
script += await utils.log(
|
||||
'pcov enabled as coverage driver',
|
||||
os_version,
|
||||
'success'
|
||||
);
|
||||
// version is not supported
|
||||
break;
|
||||
case '5.6':
|
||||
case '7.0':
|
||||
script += await utils.log(
|
||||
'pcov requires php 7.1 or newer',
|
||||
os_version,
|
||||
'warning'
|
||||
);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
//xdebug
|
||||
case 'xdebug':
|
||||
script += await addExtension(coverage, version, os_version);
|
||||
script += await utils.log(
|
||||
'Xdebug enabled as coverage driver',
|
||||
os_version,
|
||||
'success'
|
||||
);
|
||||
break;
|
||||
// unknown coverage driver
|
||||
default:
|
||||
script = '';
|
||||
}
|
||||
return script;
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ async function run() {
|
||||
let version: string = await utils.getInput('php-version', true);
|
||||
let extension_csv: string = await utils.getInput('extension-csv', false);
|
||||
let ini_values_csv: string = await utils.getInput('ini-values-csv', false);
|
||||
let coverage: string = await utils.getInput('coverage', false);
|
||||
|
||||
let os_version: string = process.platform;
|
||||
// check the os version and run the respective script
|
||||
@ -23,6 +24,7 @@ async function run() {
|
||||
);
|
||||
darwin += await features.addExtension(extension_csv, version, os_version);
|
||||
darwin += await features.addINIValues(ini_values_csv, os_version);
|
||||
darwin += await features.addCoverage(coverage, version, os_version);
|
||||
await utils.writeScript('darwin.sh', version, darwin);
|
||||
await exec('sh -x ./' + version + 'darwin.sh ' + version);
|
||||
} else if (os_version == 'win32') {
|
||||
@ -37,6 +39,7 @@ async function run() {
|
||||
os_version
|
||||
);
|
||||
windows += await features.addINIValues(ini_values_csv, os_version);
|
||||
windows += await features.addCoverage(coverage, version, os_version);
|
||||
await utils.writeScript('win32.ps1', version, windows);
|
||||
await exec('powershell .\\' + version + 'win32.ps1 -version ' + version);
|
||||
} else if (os_version == 'linux') {
|
||||
@ -47,6 +50,7 @@ async function run() {
|
||||
);
|
||||
linux += await features.addExtension(extension_csv, version, os_version);
|
||||
linux += await features.addINIValues(ini_values_csv, os_version);
|
||||
linux += await features.addCoverage(coverage, version, os_version);
|
||||
await utils.writeScript('linux.sh', version, linux);
|
||||
await exec('./' + version + 'linux.sh ' + version);
|
||||
}
|
||||
|
65
src/utils.ts
65
src/utils.ts
@ -7,11 +7,13 @@ export async function getInput(
|
||||
mandatory: boolean
|
||||
): Promise<string> {
|
||||
let input = process.env[name];
|
||||
if (!input) {
|
||||
input = core.getInput(name, {required: mandatory});
|
||||
switch (input) {
|
||||
case '':
|
||||
case undefined:
|
||||
return core.getInput(name, {required: mandatory});
|
||||
default:
|
||||
return input;
|
||||
}
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -42,10 +44,31 @@ export async function readScript(
|
||||
version: string,
|
||||
os_version: string
|
||||
): Promise<string> {
|
||||
if (version === '7.4' && os_version === 'darwin') {
|
||||
return fs.readFileSync(path.join(__dirname, '../src/7.4.sh'), 'utf8');
|
||||
switch (os_version) {
|
||||
case 'darwin':
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
return fs.readFileSync(path.join(__dirname, '../src/7.4.sh'), 'utf8');
|
||||
case '7.3':
|
||||
default:
|
||||
return fs.readFileSync(
|
||||
path.join(__dirname, '../src/' + filename),
|
||||
'utf8'
|
||||
);
|
||||
}
|
||||
case 'win32':
|
||||
case 'linux':
|
||||
return fs.readFileSync(
|
||||
path.join(__dirname, '../src/' + filename),
|
||||
'utf8'
|
||||
);
|
||||
default:
|
||||
return await log(
|
||||
'Platform ' + os_version + ' is not supported',
|
||||
os_version,
|
||||
'error'
|
||||
);
|
||||
}
|
||||
return fs.readFileSync(path.join(__dirname, '../src/' + filename), 'utf8');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -89,3 +112,31 @@ export async function INIArray(ini_values_csv: string): Promise<Array<string>> {
|
||||
return ini_value.trim();
|
||||
});
|
||||
}
|
||||
|
||||
export async function log(
|
||||
message: string,
|
||||
os_version: string,
|
||||
log_type: string
|
||||
): Promise<string> {
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
const color: any = {
|
||||
error: 'red',
|
||||
success: 'green',
|
||||
warning: 'yellow'
|
||||
};
|
||||
return "Write-Host '" + message + "' -ForegroundColor " + color[log_type];
|
||||
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
default:
|
||||
const unix_color: any = {
|
||||
error: '31',
|
||||
success: '32',
|
||||
warning: '33'
|
||||
};
|
||||
return (
|
||||
'echo -e "\\033[' + unix_color[log_type] + ';1m' + message + '\\033[0m"'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user