2021-03-03 10:28:50 +05:30
|
|
|
import {exec} from '@actions/exec';
|
2019-09-20 08:11:20 +05:30
|
|
|
import * as core from '@actions/core';
|
2019-10-08 18:12:54 +05:30
|
|
|
import * as config from './config';
|
|
|
|
import * as coverage from './coverage';
|
2019-10-27 05:42:49 +05:30
|
|
|
import * as extensions from './extensions';
|
2019-12-27 06:56:49 +05:30
|
|
|
import * as tools from './tools';
|
2019-10-27 05:42:49 +05:30
|
|
|
import * as utils from './utils';
|
2019-09-06 05:17:43 +05:30
|
|
|
|
2019-10-17 01:41:13 +05:30
|
|
|
/**
|
|
|
|
* Build the script
|
|
|
|
*
|
|
|
|
* @param filename
|
|
|
|
* @param version
|
|
|
|
* @param os_version
|
|
|
|
*/
|
2020-10-04 17:03:02 +05:30
|
|
|
export async function getScript(
|
2019-10-27 05:42:49 +05:30
|
|
|
filename: string,
|
|
|
|
version: string,
|
|
|
|
os_version: string
|
|
|
|
): Promise<string> {
|
2021-09-10 03:08:04 +05:30
|
|
|
const url = 'https://setup-php.com/sponsor';
|
2019-10-17 01:41:13 +05:30
|
|
|
// taking inputs
|
2020-11-08 13:06:21 +05:30
|
|
|
process.env['fail_fast'] = await utils.getInput('fail-fast', false);
|
2020-10-04 17:03:02 +05:30
|
|
|
const extension_csv: string = await utils.getInput('extensions', false);
|
2020-02-17 02:35:18 +05:30
|
|
|
const ini_values_csv: string = await utils.getInput('ini-values', false);
|
2019-11-24 02:04:12 +05:30
|
|
|
const coverage_driver: string = await utils.getInput('coverage', false);
|
2020-12-17 12:13:39 +05:30
|
|
|
const tools_csv: string = await utils.getInput('tools', false);
|
2019-10-17 01:41:13 +05:30
|
|
|
|
2021-07-05 16:03:10 +05:30
|
|
|
let script: string = await utils.readFile(filename, 'src/scripts');
|
2019-10-17 01:41:13 +05:30
|
|
|
if (extension_csv) {
|
|
|
|
script += await extensions.addExtension(extension_csv, version, os_version);
|
|
|
|
}
|
2022-01-13 04:29:05 +05:30
|
|
|
script += await tools.addTools(tools_csv, version, os_version);
|
2019-10-17 01:41:13 +05:30
|
|
|
if (coverage_driver) {
|
|
|
|
script += await coverage.addCoverage(coverage_driver, version, os_version);
|
|
|
|
}
|
2020-07-08 07:45:11 +05:30
|
|
|
if (ini_values_csv) {
|
|
|
|
script += await config.addINIValues(ini_values_csv, os_version);
|
|
|
|
}
|
2021-09-10 03:08:04 +05:30
|
|
|
script += '\n' + (await utils.stepLog(`Sponsor setup-php`, os_version));
|
|
|
|
script += '\n' + (await utils.addLog('$tick', 'setup-php', url, os_version));
|
2020-09-07 01:43:15 +05:30
|
|
|
|
2019-10-27 05:42:49 +05:30
|
|
|
return await utils.writeScript(filename, script);
|
2019-10-17 01:41:13 +05:30
|
|
|
}
|
|
|
|
|
2019-09-20 08:11:20 +05:30
|
|
|
/**
|
|
|
|
* Run the script
|
|
|
|
*/
|
2019-11-24 02:04:12 +05:30
|
|
|
export async function run(): Promise<void> {
|
2019-09-06 05:17:43 +05:30
|
|
|
try {
|
2021-05-04 23:43:26 +05:30
|
|
|
if ((await utils.readEnv('ImageOS')) == 'ubuntu16') {
|
2021-08-02 23:10:43 +05:30
|
|
|
core.setFailed(
|
|
|
|
'setup-php is not supported on Ubuntu 16.04. Please upgrade to Ubuntu 18.04 or Ubuntu 20.04 - https://setup-php.com/i/452'
|
2021-05-04 23:43:26 +05:30
|
|
|
);
|
2021-08-02 23:10:43 +05:30
|
|
|
return;
|
2021-05-04 23:43:26 +05:30
|
|
|
}
|
2020-10-02 14:51:40 +05:30
|
|
|
const version: string = await utils.parseVersion(
|
|
|
|
await utils.getInput('php-version', true)
|
|
|
|
);
|
2022-01-25 13:43:49 +05:30
|
|
|
const ini_file: string = await utils.parseIniFile(
|
|
|
|
await utils.getInput('ini-file', false)
|
|
|
|
);
|
2021-01-16 11:16:13 +05:30
|
|
|
if (version) {
|
|
|
|
const os_version: string = process.platform;
|
|
|
|
const tool = await utils.scriptTool(os_version);
|
|
|
|
const script = os_version + (await utils.scriptExtension(os_version));
|
|
|
|
const location = await getScript(script, version, os_version);
|
2022-01-25 13:43:49 +05:30
|
|
|
await exec(
|
|
|
|
await utils.joins(tool, location, version, ini_file, __dirname)
|
|
|
|
);
|
2021-01-16 11:16:13 +05:30
|
|
|
} else {
|
|
|
|
core.setFailed('Unable to get the PHP version');
|
|
|
|
}
|
2019-10-17 01:41:13 +05:30
|
|
|
} catch (error) {
|
2021-09-10 03:08:04 +05:30
|
|
|
core.setFailed((error as Error).message);
|
2019-09-06 05:17:43 +05:30
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-09-07 18:01:50 +05:30
|
|
|
// call the run function
|
2021-03-03 10:28:50 +05:30
|
|
|
(async () => {
|
|
|
|
await run();
|
|
|
|
})().catch(error => {
|
|
|
|
core.setFailed(error.message);
|
|
|
|
});
|