Set up codeception using composer

Add fixes for global composer tools
This commit is contained in:
Shivam Mathur
2021-02-22 12:01:59 +05:30
parent 0a5e543af7
commit d27996462b
6 changed files with 32 additions and 248 deletions

View File

@ -99,83 +99,6 @@ export async function getUri(
}
}
/**
* Helper function to get the codeception url
*
* @param version
* @param suffix
*/
export async function getCodeceptionUriBuilder(
version: string,
suffix: string
): Promise<string> {
return ['releases', version, suffix, 'codecept.phar']
.filter(Boolean)
.join('/');
}
/**
* Function to get the codeception url
*
* @param version
* @param php_version
*/
export async function getCodeceptionUri(
version: string,
php_version: string
): Promise<string> {
const codecept: string = await getCodeceptionUriBuilder(version, '');
const codecept54: string = await getCodeceptionUriBuilder(version, 'php54');
const codecept56: string = await getCodeceptionUriBuilder(version, 'php56');
// Refer to https://codeception.com/builds
switch (true) {
case /latest/.test(version):
switch (true) {
case /5\.6|7\.[0|1]/.test(php_version):
return 'php56/codecept.phar';
case /7\.[2-4]/.test(php_version):
default:
return 'codecept.phar';
}
case /(^[4-9]|\d{2,})\..*/.test(version):
switch (true) {
case /5\.6|7\.[0|1]/.test(php_version):
return codecept56;
case /7\.[2-4]/.test(php_version):
default:
return codecept;
}
case /(^2\.[4-5]\.\d+|^3\.[0-1]\.\d+).*/.test(version):
switch (true) {
case /5\.6/.test(php_version):
return codecept54;
case /7\.[0-4]/.test(php_version):
default:
return codecept;
}
case /^2\.3\.\d+.*/.test(version):
switch (true) {
case /5\.[4-6]/.test(php_version):
return codecept54;
case /^7\.[0-4]$/.test(php_version):
default:
return codecept;
}
case /(^2\.(1\.([6-9]|\d{2,}))|^2\.2\.\d+).*/.test(version):
switch (true) {
case /5\.[4-5]/.test(php_version):
return codecept54;
case /5.6|7\.[0-4]/.test(php_version):
default:
return codecept;
}
case /(^2\.(1\.[0-5]|0\.\d+)|^1\.[6-8]\.\d+).*/.test(version):
return codecept;
default:
return codecept;
}
}
/**
* Helper function to get script to setup phive
*
@ -348,7 +271,10 @@ export async function getCleanedToolsList(
.map(function (extension: string) {
return extension
.trim()
.replace(/robmorgan\/|hirak\/|narrowspark\/automatic-/, '');
.replace(
/codeception\/|hirak\/|robmorgan\/|narrowspark\/automatic-/,
''
);
})
.filter(Boolean);
return [...new Set(tools_list)];
@ -487,10 +413,7 @@ export async function addTools(
script += await addArchive('composer', url, os_version);
break;
case 'codeception':
url =
'https://codeception.com/' +
(await getCodeceptionUri(version, php_version));
script += await addArchive(tool, url, os_version);
script += await addPackage(tool, release, 'codeception/', os_version);
break;
case 'phpcpd':
case 'phpunit':