mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-09-07 05:14:06 +07:00
Improve Logs and tests
This commit is contained in:
@ -23,16 +23,29 @@ const utils = __importStar(require("./utils"));
|
||||
* @param ini_values_csv
|
||||
* @param os_version
|
||||
*/
|
||||
function addINIValues(ini_values_csv, os_version) {
|
||||
function addINIValues(ini_values_csv, os_version, no_step = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let script = '\n';
|
||||
switch (no_step) {
|
||||
case true:
|
||||
script +=
|
||||
(yield utils.stepLog('Add php.ini values', os_version)) +
|
||||
(yield utils.suppressOutput(os_version)) +
|
||||
'\n';
|
||||
break;
|
||||
case false:
|
||||
default:
|
||||
script += (yield utils.stepLog('Add php.ini values', os_version)) + '\n';
|
||||
break;
|
||||
}
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return yield addINIValuesWindows(ini_values_csv);
|
||||
return script + (yield addINIValuesWindows(ini_values_csv));
|
||||
case 'darwin':
|
||||
case 'linux':
|
||||
return yield addINIValuesUnix(ini_values_csv);
|
||||
return script + (yield addINIValuesUnix(ini_values_csv));
|
||||
default:
|
||||
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error', 'Add Config');
|
||||
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -45,7 +58,14 @@ exports.addINIValues = addINIValues;
|
||||
function addINIValuesUnix(ini_values_csv) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let ini_values = yield utils.INIArray(ini_values_csv);
|
||||
return '\necho "' + ini_values.join('\n') + '" >> $ini_file\n';
|
||||
let script = '\n';
|
||||
yield utils.asyncForEach(ini_values, function (line) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
script +=
|
||||
(yield utils.addLog('$tick', line, 'Added to php.ini', 'linux')) + '\n';
|
||||
});
|
||||
});
|
||||
return 'echo "' + ini_values.join('\n') + '" >> $ini_file' + script;
|
||||
});
|
||||
}
|
||||
exports.addINIValuesUnix = addINIValuesUnix;
|
||||
@ -57,7 +77,17 @@ exports.addINIValuesUnix = addINIValuesUnix;
|
||||
function addINIValuesWindows(ini_values_csv) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let ini_values = yield utils.INIArray(ini_values_csv);
|
||||
return ('Add-Content C:\\tools\\php\\php.ini "' + ini_values.join('\n') + '"\n');
|
||||
let script = '\n';
|
||||
yield utils.asyncForEach(ini_values, function (line) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
script +=
|
||||
(yield utils.addLog('$tick', line, 'Added to php.ini', 'win32')) + '\n';
|
||||
});
|
||||
});
|
||||
return ('Add-Content C:\\tools\\php\\php.ini "' +
|
||||
ini_values.join('\n') +
|
||||
'"' +
|
||||
script);
|
||||
});
|
||||
}
|
||||
exports.addINIValuesWindows = addINIValuesWindows;
|
||||
|
@ -29,13 +29,14 @@ const config = __importStar(require("./config"));
|
||||
function addCoverage(coverage_driver, version, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
coverage_driver.toLowerCase();
|
||||
let script = '\n' + (yield utils.stepLog('Setup Coverage', os_version));
|
||||
switch (coverage_driver) {
|
||||
case 'pcov':
|
||||
return addCoveragePCOV(version, os_version);
|
||||
return script + (yield addCoveragePCOV(version, os_version));
|
||||
case 'xdebug':
|
||||
return addCoverageXdebug(version, os_version);
|
||||
return script + (yield addCoverageXdebug(version, os_version));
|
||||
case 'none':
|
||||
return disableCoverage(version, os_version);
|
||||
return script + (yield disableCoverage(version, os_version));
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
@ -50,10 +51,10 @@ exports.addCoverage = addCoverage;
|
||||
*/
|
||||
function addCoverageXdebug(version, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let script = '\n';
|
||||
script += yield extensions.addExtension('xdebug', version, os_version, 'Set Coverage Driver');
|
||||
script += yield utils.log('Xdebug enabled as coverage driver', os_version, 'success', 'Set Coverage Driver');
|
||||
return script;
|
||||
return ((yield extensions.addExtension('xdebug', version, os_version, true)) +
|
||||
(yield utils.suppressOutput(os_version)) +
|
||||
'\n' +
|
||||
(yield utils.addLog('$tick', 'xdebug', 'Xdebug enabled as coverage driver', os_version)));
|
||||
});
|
||||
}
|
||||
exports.addCoverageXdebug = addCoverageXdebug;
|
||||
@ -68,8 +69,12 @@ function addCoveragePCOV(version, os_version) {
|
||||
let script = '\n';
|
||||
switch (version) {
|
||||
default:
|
||||
script += yield extensions.addExtension('pcov', version, os_version, 'Set Coverage Driver');
|
||||
script += yield config.addINIValues('pcov.enabled=1', os_version);
|
||||
script +=
|
||||
(yield extensions.addExtension('pcov', version, os_version, true)) +
|
||||
(yield utils.suppressOutput(os_version)) +
|
||||
'\n';
|
||||
script +=
|
||||
(yield config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
||||
// add command to disable xdebug and enable pcov
|
||||
switch (os_version) {
|
||||
case 'linux':
|
||||
@ -90,12 +95,12 @@ function addCoveragePCOV(version, os_version) {
|
||||
break;
|
||||
}
|
||||
// success
|
||||
script += yield utils.log('PCOV enabled as coverage driver', os_version, 'success', 'Set Coverage Driver');
|
||||
script += yield utils.addLog('$tick', 'coverage: pcov', 'PCOV enabled as coverage driver', os_version);
|
||||
// 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', 'Set Coverage Driver');
|
||||
script += yield utils.addLog('$cross', 'pcov', 'PHP 7.1 or newer is required', os_version);
|
||||
break;
|
||||
}
|
||||
return script;
|
||||
@ -139,7 +144,7 @@ function disableCoverage(version, os_version) {
|
||||
'if(php -m | findstr -i pcov) { Disable-PhpExtension pcov C:\\tools\\php }\n';
|
||||
break;
|
||||
}
|
||||
script += yield utils.log('Disabled Xdebug and PCOV', os_version, 'success', 'Set Coverage Driver');
|
||||
script += yield utils.addLog('$tick', 'none', 'Disabled Xdebug and PCOV', os_version);
|
||||
return script;
|
||||
});
|
||||
}
|
||||
|
@ -25,17 +25,29 @@ const utils = __importStar(require("./utils"));
|
||||
* @param os_version
|
||||
* @param log_prefix
|
||||
*/
|
||||
function addExtension(extension_csv, version, os_version, log_prefix = 'Add Extension') {
|
||||
function addExtension(extension_csv, version, os_version, no_step = false) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let script = '\n';
|
||||
switch (no_step) {
|
||||
case true:
|
||||
script +=
|
||||
(yield utils.stepLog('Setup Extensions', os_version)) +
|
||||
(yield utils.suppressOutput(os_version));
|
||||
break;
|
||||
case false:
|
||||
default:
|
||||
script += yield utils.stepLog('Setup Extensions', os_version);
|
||||
break;
|
||||
}
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return yield addExtensionWindows(extension_csv, version, log_prefix);
|
||||
return script + (yield addExtensionWindows(extension_csv, version));
|
||||
case 'darwin':
|
||||
return yield addExtensionDarwin(extension_csv, version, log_prefix);
|
||||
return script + (yield addExtensionDarwin(extension_csv, version));
|
||||
case 'linux':
|
||||
return yield addExtensionLinux(extension_csv, version, log_prefix);
|
||||
return script + (yield addExtensionLinux(extension_csv, version));
|
||||
default:
|
||||
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error', log_prefix);
|
||||
return yield utils.log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -46,7 +58,7 @@ exports.addExtension = addExtension;
|
||||
* @param extension_csv
|
||||
* @param version
|
||||
*/
|
||||
function addExtensionDarwin(extension_csv, version, log_prefix) {
|
||||
function addExtensionDarwin(extension_csv, version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let extensions = yield utils.extensionArray(extension_csv);
|
||||
let script = '\n';
|
||||
@ -72,15 +84,12 @@ function addExtensionDarwin(extension_csv, version, log_prefix) {
|
||||
break;
|
||||
}
|
||||
script +=
|
||||
'add_extension ' +
|
||||
'\nadd_extension ' +
|
||||
extension +
|
||||
' "' +
|
||||
install_command +
|
||||
'" ' +
|
||||
(yield utils.getExtensionPrefix(extension)) +
|
||||
' "' +
|
||||
log_prefix +
|
||||
'"\n';
|
||||
(yield utils.getExtensionPrefix(extension));
|
||||
});
|
||||
});
|
||||
return script;
|
||||
@ -93,7 +102,7 @@ exports.addExtensionDarwin = addExtensionDarwin;
|
||||
* @param extension_csv
|
||||
* @param version
|
||||
*/
|
||||
function addExtensionWindows(extension_csv, version, log_prefix) {
|
||||
function addExtensionWindows(extension_csv, version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let extensions = yield utils.extensionArray(extension_csv);
|
||||
let script = '\n';
|
||||
@ -117,15 +126,12 @@ function addExtensionWindows(extension_csv, version, log_prefix) {
|
||||
break;
|
||||
}
|
||||
script +=
|
||||
'Add-Extension ' +
|
||||
'\nAdd-Extension ' +
|
||||
extension +
|
||||
' "' +
|
||||
install_command +
|
||||
'" ' +
|
||||
(yield utils.getExtensionPrefix(extension)) +
|
||||
' "' +
|
||||
log_prefix +
|
||||
'"\n';
|
||||
(yield utils.getExtensionPrefix(extension));
|
||||
});
|
||||
});
|
||||
return script;
|
||||
@ -138,7 +144,7 @@ exports.addExtensionWindows = addExtensionWindows;
|
||||
* @param extension_csv
|
||||
* @param version
|
||||
*/
|
||||
function addExtensionLinux(extension_csv, version, log_prefix) {
|
||||
function addExtensionLinux(extension_csv, version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let extensions = yield utils.extensionArray(extension_csv);
|
||||
let script = '\n';
|
||||
@ -174,15 +180,12 @@ function addExtensionLinux(extension_csv, version, log_prefix) {
|
||||
break;
|
||||
}
|
||||
script +=
|
||||
'add_extension ' +
|
||||
'\nadd_extension ' +
|
||||
extension +
|
||||
' "' +
|
||||
install_command +
|
||||
'" ' +
|
||||
(yield utils.getExtensionPrefix(extension)) +
|
||||
' "' +
|
||||
log_prefix +
|
||||
'"\n';
|
||||
(yield utils.getExtensionPrefix(extension));
|
||||
});
|
||||
});
|
||||
return script;
|
||||
|
@ -22,46 +22,56 @@ const utils = __importStar(require("./utils"));
|
||||
const extensions = __importStar(require("./extensions"));
|
||||
const config = __importStar(require("./config"));
|
||||
const coverage = __importStar(require("./coverage"));
|
||||
/**
|
||||
* Build the script
|
||||
*
|
||||
* @param filename
|
||||
* @param version
|
||||
* @param os_version
|
||||
*/
|
||||
function build(filename, version, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
// taking inputs
|
||||
let extension_csv = yield utils.getInput('extension-csv', false);
|
||||
let ini_values_csv = yield utils.getInput('ini-values-csv', false);
|
||||
let coverage_driver = yield utils.getInput('coverage', false);
|
||||
let script = yield utils.readScript(filename, version, os_version);
|
||||
if (extension_csv) {
|
||||
script += yield extensions.addExtension(extension_csv, version, os_version);
|
||||
}
|
||||
if (ini_values_csv) {
|
||||
script += yield config.addINIValues(ini_values_csv, os_version);
|
||||
}
|
||||
if (coverage_driver) {
|
||||
script += yield coverage.addCoverage(coverage_driver, version, os_version);
|
||||
}
|
||||
yield utils.writeScript(filename, version, script);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Run the script
|
||||
*/
|
||||
function run() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
// taking inputs
|
||||
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_driver = yield utils.getInput('coverage', false);
|
||||
let os_version = process.platform;
|
||||
let version = yield utils.getInput('php-version', true);
|
||||
// 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 extensions.addExtension(extension_csv, version, os_version);
|
||||
darwin += yield config.addINIValues(ini_values_csv, os_version);
|
||||
darwin += yield coverage.addCoverage(coverage_driver, version, os_version);
|
||||
yield utils.writeScript('darwin.sh', version, darwin);
|
||||
yield build('darwin.sh', version, os_version);
|
||||
yield exec_1.exec('sh ./' + version + 'darwin.sh ' + version);
|
||||
}
|
||||
else if (os_version == 'win32') {
|
||||
let windows = yield utils.readScript('win32.ps1', version, os_version);
|
||||
windows += yield extensions.addExtension(extension_csv, version, os_version);
|
||||
windows += yield config.addINIValues(ini_values_csv, os_version);
|
||||
windows += yield coverage.addCoverage(coverage_driver, version, os_version);
|
||||
yield utils.writeScript('win32.ps1', version, windows);
|
||||
yield build('win32.ps1', version, os_version);
|
||||
yield exec_1.exec('powershell .\\' + version + 'win32.ps1 -version ' + version);
|
||||
}
|
||||
else if (os_version == 'linux') {
|
||||
let linux = yield utils.readScript('linux.sh', version, os_version);
|
||||
linux += yield extensions.addExtension(extension_csv, version, os_version);
|
||||
linux += yield config.addINIValues(ini_values_csv, os_version);
|
||||
linux += yield coverage.addCoverage(coverage_driver, version, os_version);
|
||||
yield utils.writeScript('linux.sh', version, linux);
|
||||
yield build('linux.sh', version, os_version);
|
||||
yield exec_1.exec('./' + version + 'linux.sh ' + version);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
core.setFailed(err.message);
|
||||
catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
110
lib/utils.js
110
lib/utils.js
@ -58,14 +58,14 @@ exports.asyncForEach = asyncForEach;
|
||||
*
|
||||
* @param files
|
||||
*/
|
||||
function readFiles74(files) {
|
||||
function moveFiles(files) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield asyncForEach(files, function (filename) {
|
||||
fs.createReadStream(path.join(__dirname, '../src/' + filename)).pipe(fs.createWriteStream(filename.split('/')[1], { mode: 0o755 }));
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.readFiles74 = readFiles74;
|
||||
exports.moveFiles = moveFiles;
|
||||
/**
|
||||
* Read the scripts
|
||||
*
|
||||
@ -79,7 +79,7 @@ function readScript(filename, version, os_version) {
|
||||
case 'darwin':
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
yield readFiles74([
|
||||
yield moveFiles([
|
||||
'configs/config.yaml',
|
||||
'scripts/xdebug_darwin.sh',
|
||||
'scripts/pcov.sh'
|
||||
@ -89,18 +89,17 @@ function readScript(filename, version, os_version) {
|
||||
break;
|
||||
case 'linux':
|
||||
let files = ['scripts/phalcon.sh'];
|
||||
yield readFiles74(['scripts/phalcon.sh']);
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
files.concat(['scripts/xdebug.sh', 'scripts/pcov.sh']);
|
||||
files = files.concat(['scripts/xdebug.sh', 'scripts/pcov.sh']);
|
||||
break;
|
||||
}
|
||||
yield readFiles74(files);
|
||||
yield moveFiles(files);
|
||||
break;
|
||||
case 'win32':
|
||||
switch (version) {
|
||||
case '7.4':
|
||||
yield readFiles74(['ext/php_pcov.dll']);
|
||||
yield moveFiles(['ext/php_pcov.dll']);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -166,42 +165,68 @@ function INIArray(ini_values_csv) {
|
||||
});
|
||||
}
|
||||
exports.INIArray = INIArray;
|
||||
function log(message, os_version, log_type, prefix = '') {
|
||||
/**
|
||||
* Function to log a step
|
||||
*
|
||||
* @param message
|
||||
* @param os_version
|
||||
*/
|
||||
function stepLog(message, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const unix_color = {
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return 'Step-Log "' + message + '"';
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
return 'step_log "' + message + '"';
|
||||
default:
|
||||
return yield log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.stepLog = stepLog;
|
||||
/**
|
||||
* Function to log a result
|
||||
* @param mark
|
||||
* @param subject
|
||||
* @param message
|
||||
*/
|
||||
function addLog(mark, subject, message, os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return 'Add-Log "' + mark + '" "' + subject + '" "' + message + '"';
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
return 'add_log "' + mark + '" "' + subject + '" "' + message + '"';
|
||||
default:
|
||||
return yield log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.addLog = addLog;
|
||||
/**
|
||||
* Log to console
|
||||
*
|
||||
* @param message
|
||||
* @param os_version
|
||||
* @param log_type
|
||||
* @param prefix
|
||||
*/
|
||||
function log(message, os_version, log_type) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const color = {
|
||||
error: '31',
|
||||
success: '32',
|
||||
warning: '33'
|
||||
};
|
||||
switch (prefix) {
|
||||
case '':
|
||||
prefix = '';
|
||||
break;
|
||||
default:
|
||||
prefix = prefix + ': ';
|
||||
break;
|
||||
}
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
const color = {
|
||||
error: 'red',
|
||||
success: 'green',
|
||||
warning: 'yellow'
|
||||
};
|
||||
return ("Write-Host '" +
|
||||
prefix +
|
||||
message +
|
||||
"' -ForegroundColor " +
|
||||
color[log_type]);
|
||||
return ('printf "\\033[' + color[log_type] + ';1m' + message + ' \\033[0m"');
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
default:
|
||||
return ('echo "\\033[' +
|
||||
unix_color[log_type] +
|
||||
';1m' +
|
||||
prefix +
|
||||
message +
|
||||
'\\033[0m"');
|
||||
return 'echo "\\033[' + color[log_type] + ';1m' + message + '\\033[0m"';
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -225,3 +250,22 @@ function getExtensionPrefix(extension) {
|
||||
});
|
||||
}
|
||||
exports.getExtensionPrefix = getExtensionPrefix;
|
||||
/**
|
||||
* Function to get the suffix to suppress console output
|
||||
*
|
||||
* @param os_version
|
||||
*/
|
||||
function suppressOutput(os_version) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
switch (os_version) {
|
||||
case 'win32':
|
||||
return ' >$null 2>&1';
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
return ' >/dev/null 2>&1';
|
||||
default:
|
||||
return yield log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.suppressOutput = suppressOutput;
|
||||
|
Reference in New Issue
Block a user