setup-php/src/install.ts

68 lines
1.9 KiB
TypeScript
Raw Normal View History

2019-09-06 06:47:43 +07:00
import {exec} from '@actions/exec/lib/exec';
2019-09-20 09:41:20 +07:00
import * as core from '@actions/core';
2019-10-08 19:42:54 +07:00
import * as config from './config';
import * as coverage from './coverage';
2019-10-27 07:12:49 +07:00
import * as extensions from './extensions';
import * as utils from './utils';
2019-09-06 06:47:43 +07:00
2019-10-17 03:11:13 +07:00
/**
* Build the script
*
* @param filename
* @param version
* @param os_version
*/
export async function build(
2019-10-27 07:12:49 +07:00
filename: string,
version: string,
os_version: string
): Promise<string> {
2019-10-17 03:11:13 +07:00
// taking inputs
let extension_csv: string = await utils.getInput('extension-csv', false);
let ini_values_csv: string = await utils.getInput('ini-values-csv', false);
let coverage_driver: string = await utils.getInput('coverage', false);
let script: string = await utils.readScript(filename, version, os_version);
if (extension_csv) {
script += await extensions.addExtension(extension_csv, version, os_version);
}
if (ini_values_csv) {
script += await config.addINIValues(ini_values_csv, os_version);
}
if (coverage_driver) {
script += await coverage.addCoverage(coverage_driver, version, os_version);
}
2019-10-27 07:12:49 +07:00
return await utils.writeScript(filename, script);
2019-10-17 03:11:13 +07:00
}
2019-09-20 09:41:20 +07:00
/**
* Run the script
*/
export async function run() {
2019-09-06 06:47:43 +07:00
try {
2019-09-20 09:41:20 +07:00
let os_version: string = process.platform;
2019-10-17 03:11:13 +07:00
let version: string = await utils.getInput('php-version', true);
2019-09-09 03:05:38 +07:00
// check the os version and run the respective script
let script_path: string = '';
switch (os_version) {
case 'darwin':
case 'linux':
script_path = await build(os_version + '.sh', version, os_version);
await exec('sh ' + script_path + ' ' + version + ' ' + __dirname);
break;
case 'win32':
script_path = await build('win32.ps1', version, os_version);
await exec(
'pwsh ' + script_path + ' -version ' + version + ' -dir ' + __dirname
);
break;
2019-09-06 06:47:43 +07:00
}
2019-10-17 03:11:13 +07:00
} catch (error) {
core.setFailed(error.message);
2019-09-06 06:47:43 +07:00
}
}
2019-09-07 19:31:50 +07:00
// call the run function
2019-10-11 06:11:25 +07:00
run();