From 77ac7d57f1b199aa0a7944f8d5f54b6439f3adbe Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Mon, 22 Feb 2021 10:09:52 +0530 Subject: [PATCH] Improve support for phive --- __tests__/tools.test.ts | 11 ++++++++--- dist/index.js | 13 +++++++++++-- src/tools.ts | 12 +++++++++++- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/__tests__/tools.test.ts b/__tests__/tools.test.ts index faddc7d1..cf1843e7 100644 --- a/__tests__/tools.test.ts +++ b/__tests__/tools.test.ts @@ -200,14 +200,19 @@ describe('Tools tests', () => { }); it('checking addPhive', async () => { - let script: string = await tools.addPhive('1.2.3', 'linux'); + let script: string = await tools.addPhive('1.2.3', '7.4', 'linux'); expect(script).toContain( 'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive' ); - script = await tools.addPhive('latest', 'win32'); + script = await tools.addPhive('latest', '5.6', 'win32'); expect(script).toContain( - 'Add-Tool https://phar.io/releases/phive.phar phive' + 'Add-Tool https://github.com/phar-io/phive/releases/download/0.12.1/phive-0.12.1.phar phive' + ); + + script = await tools.addPhive('latest', '7.1', 'win32'); + expect(script).toContain( + 'Add-Tool https://github.com/phar-io/phive/releases/download/0.13.5/phive-0.13.5.phar phive' ); }); diff --git a/dist/index.js b/dist/index.js index bfaeda9f..38da1653 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1808,9 +1808,18 @@ exports.getCodeceptionUri = getCodeceptionUri; * Helper function to get script to setup phive * * @param version + * @param php_version * @param os_version */ -async function addPhive(version, os_version) { +async function addPhive(version, php_version, os_version) { + switch (true) { + case /5\.6|7\.0/.test(php_version): + version = version.replace('latest', '0.12.1'); + break; + case /7\.1/.test(php_version): + version = version.replace('latest', '0.13.5'); + break; + } switch (version) { case 'latest': return ((await getCommand(os_version, 'tool')) + @@ -2028,7 +2037,7 @@ async function addTools(tools_csv, php_version, os_version) { script += await addArchive(tool, url, os_version); break; case 'phive': - script += await addPhive(version, os_version); + script += await addPhive(version, php_version, os_version); break; case 'phpstan': url = github + 'phpstan/phpstan/' + uri; diff --git a/src/tools.ts b/src/tools.ts index 0f79a8fd..d396f2a5 100644 --- a/src/tools.ts +++ b/src/tools.ts @@ -180,12 +180,22 @@ export async function getCodeceptionUri( * Helper function to get script to setup phive * * @param version + * @param php_version * @param os_version */ export async function addPhive( version: string, + php_version: string, os_version: string ): Promise { + switch (true) { + case /5\.6|7\.0/.test(php_version): + version = version.replace('latest', '0.12.1'); + break; + case /7\.1/.test(php_version): + version = version.replace('latest', '0.13.5'); + break; + } switch (version) { case 'latest': return ( @@ -458,7 +468,7 @@ export async function addTools( script += await addArchive(tool, url, os_version); break; case 'phive': - script += await addPhive(version, os_version); + script += await addPhive(version, php_version, os_version); break; case 'phpstan': url = github + 'phpstan/phpstan/' + uri;