diff --git a/.github/workflows/experimental-workflow.yml b/.github/workflows/experimental-workflow.yml deleted file mode 100644 index 001a8c6b..00000000 --- a/.github/workflows/experimental-workflow.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Experimental workflow -on: - pull_request: - branches: - - nightly - - master - - develop - - verbose - paths-ignore: - - '**.md' - - 'examples/**' - push: - branches: - - nightly - - master - - develop - - verbose - paths-ignore: - - '**.md' - - 'examples/**' -jobs: - run: - name: Run - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, windows-latest, macos-latest] - php-versions: ['8.0'] - env: - extensions: xml, opcache, pcov - key: cache-v2 - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup cache environment - id: cache-env - uses: shivammathur/cache-extensions@develop - with: - php-version: ${{ matrix.php-versions }} - extensions: ${{ env.extensions }} - key: ${{ env.key }} - - - name: Cache extensions - uses: actions/cache@v2 - with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} - - - name: Setup PHP with extensions and custom config - run: node dist/index.js - env: - php-version: ${{ matrix.php-versions }} - extensions: ${{ env.extensions }} - ini-values: post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata - coverage: pcov - - - name: Testing PHP version - run: | - php -v - php -r "if(strpos(phpversion(), '${{ matrix.php-versions }}') === false) {throw new Exception('Wrong PHP version Installed');}" - - - name: Testing Composer version - run: | - composer -V - php -r "if(strpos(@exec('composer -V'), 'Composer version') === false) {throw new Exception('Composer not found');}" - - name: Testing Extensions - run: | - php -m - php -r "if(! extension_loaded('mbstring')) {throw new Exception('mbstring not found');}" - php -r "if(! extension_loaded('pcov')) {throw new Exception('PCOV not found');}" - - name: Testing ini values - run: | - php -r "if(ini_get('post_max_size')!='256M') {throw new Exception('post_max_size not added');}" - php -r "if(ini_get('short_open_tag')!=1) {throw new Exception('short_open_tag not added');}" - php -r "if(ini_get('date.timezone')!='Asia/Kolkata') {throw new Exception('date.timezone not added');}" - - name: Test JIT - run: | - php -r "if(! extension_loaded('Zend OPcache')) {throw new Exception('Zend OPcache not found');}" - php -r "if(ini_get('opcache.jit_buffer_size')!='256M') {throw new Exception('opcache.jit_buffer_size not set');}" - php -r "if(ini_get('opcache.jit')!=1235) {throw new Exception('opcache.jit not set');}" - php -r "if(ini_get('pcre.jit')!=1) {throw new Exception('pcre.jit not set');}" - - name: Benchmark JIT - run: | - curl -o bench.php https://raw.githubusercontent.com/php/php-src/master/Zend/bench.php - php bench.php \ No newline at end of file diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e15b78d9..aa72f54b 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -24,7 +24,7 @@ jobs: fail-fast: false matrix: operating-system: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, windows-latest, macos-latest] - php-versions: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4'] + php-versions: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] env: extensions: xml, opcache, xdebug, pcov key: cache-v2 @@ -33,7 +33,7 @@ jobs: uses: actions/checkout@v2 - name: Setup cache environment - id: cache-env + id: extcache uses: shivammathur/cache-extensions@develop with: php-version: ${{ matrix.php-versions }} @@ -43,9 +43,9 @@ jobs: - name: Cache extensions uses: actions/cache@v2 with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} + path: ${{ steps.extcache.outputs.dir }} + key: ${{ steps.extcache.outputs.key }} + restore-keys: ${{ steps.extcache.outputs.key }} - name: Setup PHP with extensions and custom config run: node dist/index.js diff --git a/README.md b/README.md index 31c45c46..a7c97b0a 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ with: ### Xdebug Specify `coverage: xdebug` to use `Xdebug`. -Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action") except `8.0`. +Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action"). ```yaml uses: shivammathur/setup-php@v2 @@ -338,7 +338,8 @@ steps: > Setup PHP on a self-hosted runner. - To setup a dockerized self-hosted runner, refer to this [guide](https://github.com/shivammathur/setup-php/wiki/Dockerized-self-hosted-runner-on-Ubuntu) to setup in an `Ubuntu` container and refer to this [guide](https://github.com/shivammathur/setup-php/wiki/Dockerized-self-hosted-runner-on-Windows) to setup in a `Windows` container. -- To setup the runner directly on the host OS or in a VM, follow this [requirements guide](https://github.com/shivammathur/setup-php/wiki/Requirements-for-self-hosted-runners "Requirements guide for self-hosted runner to run setup-php") before setting up the self-hosted runner. +- To setup the runner directly on the host OS or in a virtual machine, follow this [requirements guide](https://github.com/shivammathur/setup-php/wiki/Requirements-for-self-hosted-runners "Requirements guide for self-hosted runner to run setup-php") before setting up the self-hosted runner. +- If your workflow uses [services](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idservices "GitHub Actions Services"), then setup the runner on a Linux host or in a Linux virtual machine. GitHub Actions does not support nested virtualization on Linux, so services will not work in a dockerized container. Specify the environment variable `runner` with the value `self-hosted`. Without this your workflow will fail. @@ -470,7 +471,7 @@ steps: uses: actions/checkout@v2 - name: Setup cache environment - id: cache-env + id: extcache uses: shivammathur/cache-extensions@v1 with: php-version: ${{ matrix.php-versions }} @@ -480,9 +481,9 @@ steps: - name: Cache extensions uses: actions/cache@v2 with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} + path: ${{ steps.extcache.outputs.dir }} + key: ${{ steps.extcache.outputs.key }} + restore-keys: ${{ steps.extcache.outputs.key }} - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -499,13 +500,13 @@ If your project uses composer, you can persist composer's internal cache directo ```yaml - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- @@ -527,13 +528,13 @@ If your project has node.js dependencies, you can persist npm's or yarn's cache ```yaml - name: Get node.js cache directory - id: node-cache-dir + id: nodecache run: echo "::set-output name=dir::$(npm config get cache)" # Use $(yarn cache dir) for yarn - name: Cache dependencies uses: actions/cache@v2 with: - path: ${{ steps.node-cache-dir.outputs.dir }} + path: ${{ steps.nodecache.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} # Use '**/yarn.lock' for yarn restore-keys: ${{ runner.os }}-node- ``` diff --git a/__tests__/coverage.test.ts b/__tests__/coverage.test.ts index ad9a9bb6..455f6ed1 100644 --- a/__tests__/coverage.test.ts +++ b/__tests__/coverage.test.ts @@ -1,15 +1,9 @@ import * as coverage from '../src/coverage'; -jest.mock('../src/extensions', () => ({ - addExtension: jest.fn().mockImplementation(extension => { - return 'add_extension ' + extension + '\n'; - }) -})); - describe('Config tests', () => { it('checking addCoverage with PCOV on windows', async () => { let win32: string = await coverage.addCoverage('PCOV', '7.4', 'win32'); - expect(win32).toContain('add_extension pcov'); + expect(win32).toContain('Add-Extension pcov'); expect(win32).toContain('Remove-Extension xdebug'); win32 = await coverage.addCoverage('pcov', '7.0', 'win32'); @@ -33,22 +27,30 @@ describe('Config tests', () => { it('checking addCoverage with Xdebug on windows', async () => { const win32: string = await coverage.addCoverage('xdebug', '7.4', 'win32'); - expect(win32).toContain('add_extension xdebug'); - }); - - it('checking addCoverage with Xdebug on windows', async () => { - const win32: string = await coverage.addCoverage('xdebug', '8.0', 'win32'); - expect(win32).toContain('Xdebug currently only supports PHP 7.4 or lower'); - }); - - it('checking addCoverage with Xdebug on linux', async () => { - const linux: string = await coverage.addCoverage('xdebug', '7.4', 'linux'); - expect(linux).toContain('add_extension xdebug'); + expect(win32).toContain('Add-Extension xdebug'); }); it('checking addCoverage with Xdebug on linux', async () => { const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux'); - expect(linux).toContain('Xdebug currently only supports PHP 7.4 or lower'); + expect(linux).toContain('add_extension xdebug'); + }); + + it('checking addCoverage with Xdebug3 on linux', async () => { + const linux: string = await coverage.addCoverage('xdebug3', '7.4', 'linux'); + expect(linux).toContain('add_extension_from_source xdebug'); + expect(linux).toContain('echo "xdebug.mode=coverage"'); + }); + + it('checking addCoverage with Xdebug3 on linux', async () => { + const linux: string = await coverage.addCoverage('xdebug3', '8.0', 'linux'); + expect(linux).toContain('add_extension xdebug'); + expect(linux).toContain('echo "xdebug.mode=coverage"'); + }); + + it('checking addCoverage with Xdebug on linux', async () => { + const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux'); + expect(linux).toContain('add_extension xdebug'); + expect(linux).toContain('echo "xdebug.mode=coverage"'); }); it('checking addCoverage with Xdebug on darwin', async () => { @@ -60,15 +62,6 @@ describe('Config tests', () => { expect(darwin).toContain('add_extension xdebug'); }); - it('checking addCoverage with Xdebug on darwin', async () => { - const darwin: string = await coverage.addCoverage( - 'xdebug', - '8.0', - 'darwin' - ); - expect(darwin).toContain('Xdebug currently only supports PHP 7.4 or lower'); - }); - it('checking disableCoverage windows', async () => { const win32 = await coverage.addCoverage('none', '7.4', 'win32'); expect(win32).toContain('Remove-Extension xdebug'); diff --git a/__tests__/extensions.test.ts b/__tests__/extensions.test.ts index 81734487..0931f65d 100644 --- a/__tests__/extensions.test.ts +++ b/__tests__/extensions.test.ts @@ -1,6 +1,12 @@ import * as extensions from '../src/extensions'; describe('Extension tests', () => { + it('checking getXdebugVersion', async () => { + expect(await extensions.getXdebugVersion('5.3')).toContain('2.2.7'); + expect(await extensions.getXdebugVersion('5.4')).toContain('2.4.1'); + expect(await extensions.getXdebugVersion('5.5')).toContain('2.5.5'); + expect(await extensions.getXdebugVersion('5.6')).toContain('2.9.6'); + }); it('checking addExtensionOnWindows', async () => { let win32: string = await extensions.addExtension( 'Xdebug, pcov, sqlite, :intl, phalcon4, ast-beta, grpc-1.2.3, inotify-1.2.3alpha2', @@ -50,11 +56,14 @@ describe('Extension tests', () => { it('checking addExtensionOnLinux', async () => { let linux: string = await extensions.addExtension( - 'Xdebug, pcov, sqlite, :intl, ast, uopz, ast-beta, pdo_mysql, pdo-odbc, xdebug-alpha, grpc-1.2.3', + 'Xdebug, xdebug3, pcov, sqlite, :intl, ast, uopz, ast-beta, pdo_mysql, pdo-odbc, xdebug-alpha, grpc-1.2.3', '7.4', 'linux' ); - expect(linux).toContain('update_extension xdebug 2.9.3'); + expect(linux).toContain('update_extension xdebug 2.9.6'); + expect(linux).toContain( + 'add_extension_from_source xdebug xdebug/xdebug master --enable-xdebug zend_extension' + ); expect(linux).toContain('sudo $debconf_fix apt-get install -y php7.4-pcov'); expect(linux).toContain( 'sudo $debconf_fix apt-get install -y php7.4-sqlite3' @@ -70,6 +79,11 @@ describe('Extension tests', () => { 'add_unstable_extension xdebug alpha zend_extension' ); + linux = await extensions.addExtension('xdebug3', '8.0', 'linux'); + expect(linux).toContain( + 'sudo $debconf_fix apt-get install -y php8.0-xdebug' + ); + linux = await extensions.addExtension('gearman', '7.0', 'linux'); expect(linux).toContain('gearman.sh 7.0'); linux = await extensions.addExtension('gearman', '7.1', 'linux'); @@ -104,8 +118,8 @@ describe('Extension tests', () => { '7.2', 'darwin' ); - expect(darwin).toContain('sudo pecl install -f xdebug'); - expect(darwin).toContain('sudo pecl install -f pcov'); + expect(darwin).toContain('add_brew_extension xdebug'); + expect(darwin).toContain('add_brew_extension pcov'); expect(darwin).toContain('sudo pecl install -f sqlite3'); expect(darwin).toContain('remove_extension intl'); expect(darwin).toContain('add_unstable_extension ast beta extension'); @@ -121,7 +135,7 @@ describe('Extension tests', () => { expect(darwin).toContain('sudo pecl install -f pcov'); darwin = await extensions.addExtension('pcov', '7.2', 'darwin'); - expect(darwin).toContain('sudo pecl install -f pcov'); + expect(darwin).toContain('add_brew_extension pcov'); darwin = await extensions.addExtension('xdebug', '5.3', 'darwin'); expect(darwin).toContain('sudo pecl install -f xdebug-2.2.7'); @@ -133,13 +147,13 @@ describe('Extension tests', () => { expect(darwin).toContain('sudo pecl install -f xdebug-2.5.5'); darwin = await extensions.addExtension('xdebug', '5.6', 'darwin'); - expect(darwin).toContain('sudo pecl install -f xdebug-2.5.5'); + expect(darwin).toContain('add_brew_extension xdebug'); darwin = await extensions.addExtension('xdebug', '7.0', 'darwin'); - expect(darwin).toContain('sudo pecl install -f xdebug-2.9.0'); + expect(darwin).toContain('add_brew_extension xdebug'); darwin = await extensions.addExtension('xdebug', '7.2', 'darwin'); - expect(darwin).toContain('sudo pecl install -f xdebug'); + expect(darwin).toContain('add_brew_extension xdebug'); darwin = await extensions.addExtension('redis', '5.6', 'darwin'); expect(darwin).toContain('sudo pecl install -f redis-2.2.8'); diff --git a/__tests__/utils.test.ts b/__tests__/utils.test.ts index 0880ff41..8b0dcc2e 100644 --- a/__tests__/utils.test.ts +++ b/__tests__/utils.test.ts @@ -155,6 +155,7 @@ describe('Utils tests', () => { ); expect(await utils.getExtensionPrefix('xsl')).toEqual('extension'); expect(await utils.getExtensionPrefix('xdebug')).toEqual('zend_extension'); + expect(await utils.getExtensionPrefix('xdebug3')).toEqual('zend_extension'); expect(await utils.getExtensionPrefix('opcache')).toEqual('zend_extension'); }); diff --git a/dist/index.js b/dist/index.js index 0e9af736..1ffe2e6f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1218,13 +1218,17 @@ exports.CSVArray = CSVArray; * @param extension */ async function getExtensionPrefix(extension) { - const zend = ['xdebug', 'opcache', 'ioncube', 'eaccelerator']; + const zend = [ + 'xdebug', + 'xdebug3', + 'opcache', + 'ioncube', + 'eaccelerator' + ]; switch (zend.indexOf(extension)) { - case 0: - case 1: + default: return 'zend_extension'; case -1: - default: return 'extension'; } } @@ -2142,21 +2146,24 @@ const config = __importStar(__webpack_require__(641)); /** * Function to setup Xdebug * + * @param extension * @param version * @param os_version * @param pipe */ -async function addCoverageXdebug(version, os_version, pipe) { - switch (version) { - case '8.0': - return ('\n' + - (await utils.addLog('$cross', 'xdebug', 'Xdebug currently only supports PHP 7.4 or lower', os_version))); - case '7.4': +async function addCoverageXdebug(extension, version, os_version, pipe) { + const xdebug = (await extensions.addExtension(extension, version, os_version, true)) + + pipe; + const ini = (await config.addINIValues('xdebug.mode=coverage', os_version, true)) + + pipe; + const log = await utils.addLog('$tick', extension, 'Xdebug enabled as coverage driver', os_version); + switch (true) { + case /^xdebug3$/.test(extension): + case /^8\.0$/.test(version): + return '\n' + xdebug + '\n' + ini + '\n' + log; + case /^xdebug$/.test(extension): default: - return ((await extensions.addExtension('xdebug', version, os_version, true)) + - pipe + - '\n' + - (await utils.addLog('$tick', 'xdebug', 'Xdebug enabled as coverage driver', os_version))); + return xdebug + '\n' + log; } } exports.addCoverageXdebug = addCoverageXdebug; @@ -2237,7 +2244,9 @@ async function addCoverage(coverage_driver, version, os_version) { case 'pcov': return script + (await addCoveragePCOV(version, os_version, pipe)); case 'xdebug': - return script + (await addCoverageXdebug(version, os_version, pipe)); + case 'xdebug3': + return (script + + (await addCoverageXdebug(coverage_driver, version, os_version, pipe))); case 'none': return script + (await disableCoverage(version, os_version, pipe)); default: @@ -2283,10 +2292,10 @@ const utils = __importStar(__webpack_require__(163)); */ async function addINIValuesUnix(ini_values_csv) { const ini_values = await utils.CSVArray(ini_values_csv); - let script = '\n'; + let script = ''; await utils.asyncForEach(ini_values, async function (line) { script += - (await utils.addLog('$tick', line, 'Added to php.ini', 'linux')) + '\n'; + '\n' + (await utils.addLog('$tick', line, 'Added to php.ini', 'linux')); }); return 'echo "' + ini_values.join('\n') + '" >> $ini_file' + script; } @@ -2685,9 +2694,27 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.addExtension = exports.addExtensionLinux = exports.addExtensionWindows = exports.addExtensionDarwin = void 0; +exports.addExtension = exports.addExtensionLinux = exports.addExtensionWindows = exports.addExtensionDarwin = exports.getXdebugVersion = void 0; const path = __importStar(__webpack_require__(622)); const utils = __importStar(__webpack_require__(163)); +/** + * Function to get Xdebug version compatible with php versions + * + * @param version + */ +async function getXdebugVersion(version) { + switch (version) { + case '5.3': + return '2.2.7'; + case '5.4': + return '2.4.1'; + case '5.5': + return '2.5.5'; + default: + return '2.9.6'; + } +} +exports.getXdebugVersion = getXdebugVersion; /** * Install and enable extensions for darwin * @@ -2741,25 +2768,22 @@ async function addExtensionDarwin(extension_csv, version, pipe) { ' ' + ext_prefix; return; - // match 5.3xdebug - case /5\.3xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.2.7' + pipe; + // match 5.3xdebug...5.5xdebug + case /5\.[3-5]xdebug/.test(version_extension): + command = + command_prefix + 'xdebug-' + (await getXdebugVersion(version)); break; - // match 5.4xdebug - case /5\.4xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.4.1' + pipe; + // match 5.6xdebug, 7.0xdebug...7.4xdebug, 8.0xdebug + case /(5\.6|7\.[0-4]|8\.[0-9])xdebug/.test(version_extension): + command = 'add_brew_extension xdebug'; break; - // match 5.5xdebug and 5.6xdebug - case /5\.[5-6]xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.5.5' + pipe; - break; - // match 7.0redis - case /7\.0xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.9.0' + pipe; + // match 7.1pcov...7.4pcov, 8.0pcov + case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension): + command = 'add_brew_extension pcov'; break; // match 5.6redis case /5\.6redis/.test(version_extension): - command = command_prefix + 'redis-2.2.8' + pipe; + command = command_prefix + 'redis-2.2.8'; break; // match imagick case /^imagick$/.test(extension): @@ -2774,7 +2798,7 @@ async function addExtensionDarwin(extension_csv, version, pipe) { // match sqlite case /^sqlite$/.test(extension): extension = 'sqlite3'; - command = command_prefix + extension + pipe; + command = command_prefix + extension; break; // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): @@ -2787,7 +2811,7 @@ async function addExtensionDarwin(extension_csv, version, pipe) { version; return; default: - command = command_prefix + extension + pipe; + command = command_prefix + extension; break; } add_script += @@ -2949,10 +2973,20 @@ async function addExtensionLinux(extension_csv, version, pipe) { ' ' + version; return; + // match 7.2xdebug3..7.4xdebug3 + case /^7\.[2-4]xdebug3$/.test(version_extension): + add_script += + '\nadd_extension_from_source xdebug xdebug/xdebug master --enable-xdebug zend_extension'; + return; + // match 8.0xdebug3 + case /^8\.[0-9]xdebug3$/.test(version_extension): + extension = 'xdebug'; + command = command_prefix + version + '-' + extension + pipe; + break; // match 7.1xdebug..7.4xdebug case /^7\.[1-4]xdebug$/.test(version_extension): add_script += - '\nupdate_extension xdebug 2.9.3' + + '\nupdate_extension xdebug 2.9.6' + pipe + '\n' + (await utils.addLog('$tick', 'xdebug', 'Enabled', 'linux')); diff --git a/examples/bedrock.yml b/examples/bedrock.yml index 9a6d5b23..6cf64c26 100644 --- a/examples/bedrock.yml +++ b/examples/bedrock.yml @@ -17,16 +17,16 @@ jobs: with: php-version: ${{ matrix.php-versions }} - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install -n --prefer-dist + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: PHP test run: composer test \ No newline at end of file diff --git a/examples/cakephp-mysql.yml b/examples/cakephp-mysql.yml index 6272ae40..7a01b949 100644 --- a/examples/cakephp-mysql.yml +++ b/examples/cakephp-mysql.yml @@ -37,19 +37,19 @@ jobs: - name: Start mysql service run: sudo /etc/init.d/mysql start - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader composer run-script post-install-cmd --no-interaction # Add a step to run migrations if required - name: Test with phpunit @@ -70,18 +70,18 @@ jobs: php-version: '7.3' extensions: mbstring, intl - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: PHP CodeSniffer run: composer cs-check @@ -98,17 +98,17 @@ jobs: extensions: mbstring, intl tools: phpstan - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Static Analysis using PHPStan run: phpstan analyse --no-progress src/ \ No newline at end of file diff --git a/examples/cakephp-postgres.yml b/examples/cakephp-postgres.yml index 57831770..86e5396d 100644 --- a/examples/cakephp-postgres.yml +++ b/examples/cakephp-postgres.yml @@ -35,19 +35,19 @@ jobs: extensions: mbstring, intl, redis, pdo_pgsql coverage: pcov - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader composer run-script post-install-cmd --no-interaction # Add a step to run migrations if required - name: Test with phpunit @@ -68,18 +68,18 @@ jobs: php-version: '7.3' extensions: mbstring, intl - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: PHP CodeSniffer run: composer cs-check @@ -96,17 +96,17 @@ jobs: extensions: mbstring, intl tools: phpstan - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Static Analysis using PHPStan run: phpstan analyse --no-progress src/ \ No newline at end of file diff --git a/examples/cakephp.yml b/examples/cakephp.yml index 044fd82c..e6f36181 100644 --- a/examples/cakephp.yml +++ b/examples/cakephp.yml @@ -19,19 +19,19 @@ jobs: extensions: mbstring, intl, pdo_sqlite, pdo_mysql coverage: pcov #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader composer run-script post-install-cmd --no-interaction - name: Test with phpunit run: vendor/bin/phpunit --coverage-text @@ -48,18 +48,18 @@ jobs: php-version: '7.3' extensions: mbstring, intl - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: PHP CodeSniffer run: composer cs-check @@ -76,17 +76,17 @@ jobs: extensions: mbstring, intl tools: phpstan - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Static Analysis using PHPStan run: phpstan analyse --no-progress src/ diff --git a/examples/codeigniter.yml b/examples/codeigniter.yml index 9fa2efd9..3e3f1c6b 100644 --- a/examples/codeigniter.yml +++ b/examples/codeigniter.yml @@ -18,17 +18,17 @@ jobs: extensions: mbstring, intl, curl, dom coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Test with phpunit run: vendor/bin/phpunit --coverage-text \ No newline at end of file diff --git a/examples/laravel-mysql.yml b/examples/laravel-mysql.yml index 8e9ad645..65b5d967 100644 --- a/examples/laravel-mysql.yml +++ b/examples/laravel-mysql.yml @@ -44,18 +44,18 @@ jobs: - name: Start mysql service run: sudo /etc/init.d/mysql start - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: | php -r "file_exists('.env') || copy('.env.example', '.env');" diff --git a/examples/laravel-postgres.yml b/examples/laravel-postgres.yml index aaf8b3e2..56e9e664 100644 --- a/examples/laravel-postgres.yml +++ b/examples/laravel-postgres.yml @@ -44,18 +44,18 @@ jobs: extensions: mbstring, dom, fileinfo, pgsql coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: | php -r "file_exists('.env') || copy('.env.example', '.env');" diff --git a/examples/laravel.yml b/examples/laravel.yml index 5498c88c..b8149986 100644 --- a/examples/laravel.yml +++ b/examples/laravel.yml @@ -20,18 +20,18 @@ jobs: extensions: mbstring, dom, fileinfo coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: | php -r "file_exists('.env') || copy('.env.example', '.env');" diff --git a/examples/lumen-mysql.yml b/examples/lumen-mysql.yml index ecf27230..2424978e 100644 --- a/examples/lumen-mysql.yml +++ b/examples/lumen-mysql.yml @@ -44,19 +44,19 @@ jobs: - name: Start mysql service run: sudo /etc/init.d/mysql start - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader composer require predis/predis illuminate/redis - name: Prepare the application run: php -r "file_exists('.env') || copy('.env.example', '.env');" diff --git a/examples/lumen-postgres.yml b/examples/lumen-postgres.yml index a68cbe98..11bef805 100644 --- a/examples/lumen-postgres.yml +++ b/examples/lumen-postgres.yml @@ -44,19 +44,19 @@ jobs: extensions: mbstring, dom, fileinfo, pgsql coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader composer require predis/predis illuminate/redis - name: Prepare the application run: php -r "file_exists('.env') || copy('.env.example', '.env');" diff --git a/examples/lumen.yml b/examples/lumen.yml index b905cbd3..d96ff454 100644 --- a/examples/lumen.yml +++ b/examples/lumen.yml @@ -20,18 +20,18 @@ jobs: extensions: mbstring, dom, fileinfo, mysql coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: php -r "file_exists('.env') || copy('.env.example', '.env');" - name: Test with phpunit diff --git a/examples/phalcon-mysql.yml b/examples/phalcon-mysql.yml index 10fd1c9c..8d2dc382 100644 --- a/examples/phalcon-mysql.yml +++ b/examples/phalcon-mysql.yml @@ -44,18 +44,18 @@ jobs: - name: Start mysql service run: sudo /etc/init.d/mysql start - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: php -r "file_exists('.env') || copy('.env.example', '.env');" - name: Run Migration diff --git a/examples/phalcon-postgres.yml b/examples/phalcon-postgres.yml index ee2b6ed6..93b2ca35 100644 --- a/examples/phalcon-postgres.yml +++ b/examples/phalcon-postgres.yml @@ -43,18 +43,18 @@ jobs: extensions: mbstring, dom, zip, phalcon4, pgsql #use phalcon3 for the phalcon 3.x coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: php -r "file_exists('.env') || copy('.env.example', '.env');" - name: Run Migration diff --git a/examples/sage.yml b/examples/sage.yml index f664c6fc..bd0f3c26 100644 --- a/examples/sage.yml +++ b/examples/sage.yml @@ -33,12 +33,12 @@ jobs: key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: ${{ runner.os }}-yarn- - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -46,7 +46,7 @@ jobs: - name: Install yarn dependencies run: yarn -V - name: Install Composer dependencies - run: composer install -o --prefer-dist --no-interaction + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Yarn test and build run: | yarn run test diff --git a/examples/slim-framework.yml b/examples/slim-framework.yml index 5263cf58..de883dfa 100644 --- a/examples/slim-framework.yml +++ b/examples/slim-framework.yml @@ -18,17 +18,17 @@ jobs: extensions: mbstring, simplexml, dom coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Test with phpunit run: vendor/bin/phpunit --coverage-text \ No newline at end of file diff --git a/examples/symfony-mysql.yml b/examples/symfony-mysql.yml index a694f211..2cf6e7da 100644 --- a/examples/symfony-mysql.yml +++ b/examples/symfony-mysql.yml @@ -31,19 +31,19 @@ jobs: - name: Start mysql service run: sudo /etc/init.d/mysql start - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader - name: Run Migration run: | composer require symfony/orm-pack diff --git a/examples/symfony-postgres.yml b/examples/symfony-postgres.yml index 7297e25e..a67a0933 100644 --- a/examples/symfony-postgres.yml +++ b/examples/symfony-postgres.yml @@ -29,19 +29,19 @@ jobs: extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, pgsql coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader - name: Run Migration run: | composer require symfony/orm-pack diff --git a/examples/symfony.yml b/examples/symfony.yml index 8e3bef1d..c5bb2767 100644 --- a/examples/symfony.yml +++ b/examples/symfony.yml @@ -20,12 +20,12 @@ jobs: extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -33,6 +33,6 @@ jobs: - name: Install Composer dependencies run: | composer require symfony/orm-pack - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader - name: Run Tests run: php bin/phpunit --coverage-text \ No newline at end of file diff --git a/examples/yii2-mysql.yml b/examples/yii2-mysql.yml index 6dab880d..7fa576a2 100644 --- a/examples/yii2-mysql.yml +++ b/examples/yii2-mysql.yml @@ -41,18 +41,18 @@ jobs: - name: Start mysql service run: sudo /etc/init.d/mysql start - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: | php -r "file_exists('.env') || copy('.env.dist', '.env');" diff --git a/examples/yii2-postgres.yml b/examples/yii2-postgres.yml index 4e854e06..ad86a1af 100644 --- a/examples/yii2-postgres.yml +++ b/examples/yii2-postgres.yml @@ -39,18 +39,18 @@ jobs: extensions: mbstring, intl, gd, imagick, zip, dom, pgsql coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies - run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Prepare the application run: | php -r "file_exists('.env') || copy('.env.dist', '.env');" diff --git a/examples/zend-framework.yml b/examples/zend-framework.yml index 960e2303..f3d0d8b9 100644 --- a/examples/zend-framework.yml +++ b/examples/zend-framework.yml @@ -18,19 +18,19 @@ jobs: extensions: mbstring, bcmath, curl, intl coverage: xdebug #optional - name: Get composer cache directory - id: composer-cache + id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies uses: actions/cache@v2 with: - path: ${{ steps.composer-cache.outputs.dir }} + path: ${{ steps.composercache.outputs.dir }} # Use composer.json for key, if composer.lock is not committed. # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies run: | - composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer install --no-progress --prefer-dist --optimize-autoloader composer require --dev phpunit/phpunit squizlabs/php_codesniffer zendframework/zend-test - name: Test with phpunit run: vendor/bin/phpunit --coverage-text \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1d54641f..f3bfd1d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "setup-php", - "version": "2.3.0", + "version": "2.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -310,6 +310,15 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.1.tgz", + "integrity": "sha512-ypC4jwfIVF72og0dgvEcFRdOM2V9Qm1tu7RGmdZOlhsccyK0wisXmMObGuWEOd5jQ+K9wcIgSNftCpk2vkjUfQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -538,9 +547,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -597,9 +606,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -641,9 +650,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -678,9 +687,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -713,9 +722,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -770,9 +779,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -817,9 +826,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -877,9 +886,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -981,9 +990,9 @@ } }, "@types/istanbul-lib-coverage": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz", - "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", "dev": true }, "@types/istanbul-lib-report": { @@ -1006,9 +1015,9 @@ } }, "@types/jest": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", - "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.0.tgz", + "integrity": "sha512-/yeMsH9HQ1RLORlXAwoLXe8S98xxvhNtUz3yrgrwbaxYjT+6SFPZZRksmRKRA6L5vsUtSHeN71viDOTTyYAD+g==", "dev": true, "requires": { "jest-diff": "^25.2.1", @@ -1016,9 +1025,9 @@ } }, "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", "dev": true }, "@types/json5": { @@ -1028,9 +1037,9 @@ "dev": true }, "@types/node": { - "version": "14.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.12.tgz", - "integrity": "sha512-/sjzehvjkkpvLpYtN6/2dv5kg41otMGuHQUt9T2aiAuIfleCQRQHXXzF1eAw/qkZTj5Kcf4JSTf7EIizHocy6Q==", + "version": "14.0.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz", + "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==", "dev": true }, "@types/normalize-package-data": { @@ -1073,12 +1082,12 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.2.0.tgz", - "integrity": "sha512-t9RTk/GyYilIXt6BmZurhBzuMT9kLKw3fQoJtK9ayv0tXTlznXEAnx07sCLXdkN3/tZDep1s1CEV95CWuARYWA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.3.0.tgz", + "integrity": "sha512-Ybx/wU75Tazz6nU2d7nN6ll0B98odoiYLXwcuwS5WSttGzK46t0n7TPRQ4ozwcTv82UY6TQoIvI+sJfTzqK9dQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "3.2.0", + "@typescript-eslint/experimental-utils": "3.3.0", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", "semver": "^7.3.2", @@ -1086,33 +1095,33 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.2.0.tgz", - "integrity": "sha512-UbJBsk+xO9dIFKtj16+m42EvUvsjZbbgQ2O5xSTSfVT1Z3yGkL90DVu0Hd3029FZ5/uBgl+F3Vo8FAcEcqc6aQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.3.0.tgz", + "integrity": "sha512-d4pGIAbu/tYsrPrdHCQ5xfadJGvlkUxbeBB56nO/VGmEDi/sKmfa5fGty5t5veL1OyJBrUmSiRn1R1qfVDydrg==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "3.2.0", + "@typescript-eslint/typescript-estree": "3.3.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.2.0.tgz", - "integrity": "sha512-Vhu+wwdevDLVDjK1lIcoD6ZbuOa93fzqszkaO3iCnmrScmKwyW/AGkzc2UvfE5TCoCXqq7Jyt6SOXjsIlpqF4A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.3.0.tgz", + "integrity": "sha512-a7S0Sqn/+RpOOWTcaLw6RD4obsharzxmgMfdK24l364VxuBODXjuJM7ImCkSXEN7oz52aiZbXSbc76+2EsE91w==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.2.0", - "@typescript-eslint/typescript-estree": "3.2.0", + "@typescript-eslint/experimental-utils": "3.3.0", + "@typescript-eslint/typescript-estree": "3.3.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.2.0.tgz", - "integrity": "sha512-uh+Y2QO7dxNrdLw7mVnjUqkwO/InxEqwN0wF+Za6eo3coxls9aH9kQ/5rSvW2GcNanebRTmsT5w1/92lAOb1bA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.3.0.tgz", + "integrity": "sha512-3SqxylENltEvJsjjMSDCUx/edZNSC7wAqifUU1Ywp//0OWEZwMZJfecJud9XxJ/40rAKEbJMKBOQzeOjrLJFzQ==", "dev": true, "requires": { "debug": "^4.1.1", @@ -1137,9 +1146,9 @@ "dev": true }, "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "dev": true }, "acorn-globals": { @@ -1159,9 +1168,9 @@ "dev": true }, "acorn-walk": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", - "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, "ajv": { @@ -1353,9 +1362,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -1389,14 +1398,15 @@ } }, "babel-preset-current-node-syntax": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz", - "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz", + "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -2008,22 +2018,22 @@ } }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -2142,9 +2152,9 @@ }, "dependencies": { "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -2163,9 +2173,9 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -2217,9 +2227,9 @@ } }, "eslint-plugin-import": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.1.tgz", - "integrity": "sha512-qYOOsgUv63vHof7BqbzuD+Ud34bXHxFJxntuAC1ZappFZXYbRIek3aJ7jc9i2dHDGDyZ/0zlO0cpioES265Lsw==", + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.2.tgz", + "integrity": "sha512-FEmxeGI6yaz+SnEB6YgNHlQK1Bs2DKLM+YF+vuTk5H8J9CLbJLtlPvRFgZZ2+sXiKAlN5dpdlrWOjK8ZoZJpQA==", "dev": true, "requires": { "array-includes": "^3.1.1", @@ -2303,9 +2313,9 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz", - "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", + "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -2322,9 +2332,9 @@ } }, "eslint-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", - "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -2546,9 +2556,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3068,9 +3078,9 @@ }, "dependencies": { "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3255,9 +3265,9 @@ "dev": true }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz", + "integrity": "sha512-E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -3592,9 +3602,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3648,9 +3658,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3739,9 +3749,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3801,9 +3811,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3877,9 +3887,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3933,9 +3943,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3970,9 +3980,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4021,9 +4031,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4070,9 +4080,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4116,9 +4126,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4170,9 +4180,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4246,9 +4256,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4279,9 +4289,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4331,9 +4341,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4458,9 +4468,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4509,9 +4519,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4567,9 +4577,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4629,9 +4639,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4702,9 +4712,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4746,9 +4756,9 @@ "dev": true }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4802,9 +4812,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -5296,9 +5306,9 @@ } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, "object-keys": { @@ -6458,28 +6468,6 @@ "es-abstract": "^1.17.5" } }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, "string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", diff --git a/package.json b/package.json index dfb511bd..4c08b2ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "setup-php", - "version": "2.3.0", + "version": "2.3.1", "private": false, "description": "Setup PHP for use with GitHub Actions", "main": "dist/index.js", @@ -30,16 +30,16 @@ "fs": "0.0.1-security" }, "devDependencies": { - "@types/jest": "^25.2.3", - "@types/node": "^14.0.12", - "@typescript-eslint/eslint-plugin": "^3.2.0", - "@typescript-eslint/parser": "^3.2.0", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.13", + "@typescript-eslint/eslint-plugin": "^3.3.0", + "@typescript-eslint/parser": "^3.3.0", "@zeit/ncc": "^0.22.3", "eslint": "^7.2.0", "eslint-config-prettier": "^6.11.0", - "eslint-plugin-import": "^2.21.1", + "eslint-plugin-import": "^2.21.2", "eslint-plugin-jest": "^23.13.2", - "eslint-plugin-prettier": "^3.1.3", + "eslint-plugin-prettier": "^3.1.4", "husky": "^4.2.5", "jest": "^26.0.1", "jest-circus": "^26.0.1", diff --git a/src/bin/php_nts_pcov.dll b/src/bin/php_nts_pcov.dll deleted file mode 100644 index 20970b0b..00000000 Binary files a/src/bin/php_nts_pcov.dll and /dev/null differ diff --git a/src/bin/php_ts_pcov.dll b/src/bin/php_ts_pcov.dll deleted file mode 100644 index a7086b36..00000000 Binary files a/src/bin/php_ts_pcov.dll and /dev/null differ diff --git a/src/config.ts b/src/config.ts index f445b1d2..6f25b367 100644 --- a/src/config.ts +++ b/src/config.ts @@ -9,10 +9,10 @@ export async function addINIValuesUnix( ini_values_csv: string ): Promise { const ini_values: Array = await utils.CSVArray(ini_values_csv); - let script = '\n'; + let script = ''; await utils.asyncForEach(ini_values, async function (line: string) { script += - (await utils.addLog('$tick', line, 'Added to php.ini', 'linux')) + '\n'; + '\n' + (await utils.addLog('$tick', line, 'Added to php.ini', 'linux')); }); return 'echo "' + ini_values.join('\n') + '" >> $ini_file' + script; } diff --git a/src/coverage.ts b/src/coverage.ts index f4fdb1af..182c280e 100644 --- a/src/coverage.ts +++ b/src/coverage.ts @@ -5,39 +5,36 @@ import * as config from './config'; /** * Function to setup Xdebug * + * @param extension * @param version * @param os_version * @param pipe */ export async function addCoverageXdebug( + extension: string, version: string, os_version: string, pipe: string ): Promise { - switch (version) { - case '8.0': - return ( - '\n' + - (await utils.addLog( - '$cross', - 'xdebug', - 'Xdebug currently only supports PHP 7.4 or lower', - os_version - )) - ); - case '7.4': + const xdebug = + (await extensions.addExtension(extension, version, os_version, true)) + + pipe; + const ini = + (await config.addINIValues('xdebug.mode=coverage', os_version, true)) + + pipe; + const log = await utils.addLog( + '$tick', + extension, + 'Xdebug enabled as coverage driver', + os_version + ); + switch (true) { + case /^xdebug3$/.test(extension): + case /^8\.0$/.test(version): + return '\n' + xdebug + '\n' + ini + '\n' + log; + case /^xdebug$/.test(extension): default: - return ( - (await extensions.addExtension('xdebug', version, os_version, true)) + - pipe + - '\n' + - (await utils.addLog( - '$tick', - 'xdebug', - 'Xdebug enabled as coverage driver', - os_version - )) - ); + return xdebug + '\n' + log; } } @@ -151,7 +148,11 @@ export async function addCoverage( case 'pcov': return script + (await addCoveragePCOV(version, os_version, pipe)); case 'xdebug': - return script + (await addCoverageXdebug(version, os_version, pipe)); + case 'xdebug3': + return ( + script + + (await addCoverageXdebug(coverage_driver, version, os_version, pipe)) + ); case 'none': return script + (await disableCoverage(version, os_version, pipe)); default: diff --git a/src/extensions.ts b/src/extensions.ts index 1381cb79..7b34bbfd 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -1,6 +1,24 @@ import * as path from 'path'; import * as utils from './utils'; +/** + * Function to get Xdebug version compatible with php versions + * + * @param version + */ +export async function getXdebugVersion(version: string): Promise { + switch (version) { + case '5.3': + return '2.2.7'; + case '5.4': + return '2.4.1'; + case '5.5': + return '2.5.5'; + default: + return '2.9.6'; + } +} + /** * Install and enable extensions for darwin * @@ -60,25 +78,22 @@ export async function addExtensionDarwin( ' ' + ext_prefix; return; - // match 5.3xdebug - case /5\.3xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.2.7' + pipe; + // match 5.3xdebug...5.5xdebug + case /5\.[3-5]xdebug/.test(version_extension): + command = + command_prefix + 'xdebug-' + (await getXdebugVersion(version)); break; - // match 5.4xdebug - case /5\.4xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.4.1' + pipe; + // match 5.6xdebug, 7.0xdebug...7.4xdebug, 8.0xdebug + case /(5\.6|7\.[0-4]|8\.[0-9])xdebug/.test(version_extension): + command = 'add_brew_extension xdebug'; break; - // match 5.5xdebug and 5.6xdebug - case /5\.[5-6]xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.5.5' + pipe; - break; - // match 7.0redis - case /7\.0xdebug/.test(version_extension): - command = command_prefix + 'xdebug-2.9.0' + pipe; + // match 7.1pcov...7.4pcov, 8.0pcov + case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension): + command = 'add_brew_extension pcov'; break; // match 5.6redis case /5\.6redis/.test(version_extension): - command = command_prefix + 'redis-2.2.8' + pipe; + command = command_prefix + 'redis-2.2.8'; break; // match imagick case /^imagick$/.test(extension): @@ -93,7 +108,7 @@ export async function addExtensionDarwin( // match sqlite case /^sqlite$/.test(extension): extension = 'sqlite3'; - command = command_prefix + extension + pipe; + command = command_prefix + extension; break; // match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4 case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension): @@ -106,7 +121,7 @@ export async function addExtensionDarwin( version; return; default: - command = command_prefix + extension + pipe; + command = command_prefix + extension; break; } add_script += @@ -283,10 +298,20 @@ export async function addExtensionLinux( ' ' + version; return; + // match 7.2xdebug3..7.4xdebug3 + case /^7\.[2-4]xdebug3$/.test(version_extension): + add_script += + '\nadd_extension_from_source xdebug xdebug/xdebug master --enable-xdebug zend_extension'; + return; + // match 8.0xdebug3 + case /^8\.[0-9]xdebug3$/.test(version_extension): + extension = 'xdebug'; + command = command_prefix + version + '-' + extension + pipe; + break; // match 7.1xdebug..7.4xdebug case /^7\.[1-4]xdebug$/.test(version_extension): add_script += - '\nupdate_extension xdebug 2.9.3' + + '\nupdate_extension xdebug 2.9.6' + pipe + '\n' + (await utils.addLog('$tick', 'xdebug', 'Enabled', 'linux')); diff --git a/src/scripts/darwin.sh b/src/scripts/darwin.sh index 4e7a845c..c15bf516 100644 --- a/src/scripts/darwin.sh +++ b/src/scripts/darwin.sh @@ -91,6 +91,16 @@ add_pecl_extension() { fi } +# Function to install a php extension from shivammathur/extensions tap. +add_brew_extension() { + extension=$1 + if ! brew tap | grep shivammathur/extensions; then + brew tap --shallow shivammathur/extensions + fi + brew install "$extension@$version" + sudo cp "$(brew --prefix)/opt/$extension@$version/$extension.so" "$ext_dir" +} + # Function to setup extensions add_extension() { extension=$1 @@ -172,7 +182,7 @@ add_composertool() { add_blackfire() { sudo mkdir -p usr/local/var/run - brew tap blackfireio/homebrew-blackfire >/dev/null 2>&1 + brew tap --shallow blackfireio/homebrew-blackfire >/dev/null 2>&1 brew install blackfire-agent >/dev/null 2>&1 if [[ -n $BLACKFIRE_SERVER_ID ]] && [[ -n $BLACKFIRE_SERVER_TOKEN ]]; then sudo blackfire-agent --register --server-id="$BLACKFIRE_SERVER_ID" --server-token="$BLACKFIRE_SERVER_TOKEN" >/dev/null 2>&1 @@ -212,7 +222,7 @@ update_formulae() { setup_php() { action=$1 export HOMEBREW_NO_INSTALL_CLEANUP=TRUE - brew tap shivammathur/homebrew-php + brew tap --shallow shivammathur/homebrew-php if brew list php@"$version" 2>/dev/null | grep -q "Error" && [ "$action" != "upgrade" ]; then brew unlink php@"$version" else diff --git a/src/scripts/linux.sh b/src/scripts/linux.sh index 793f9833..413c749a 100644 --- a/src/scripts/linux.sh +++ b/src/scripts/linux.sh @@ -120,7 +120,8 @@ add_pdo_extension() { add_log "$tick" "$pdo_ext" "Enabled" else read -r ext ext_name <<< "$1 $1" - sudo rm -rf "$scan_dir"/*pdo.ini >/dev/null 2>&1 && echo "extension=pdo.so" >> "$ini_file" + sudo rm -rf "$scan_dir"/*pdo.ini >/dev/null 2>&1 + if ! check_extension "pdo"; then echo "extension=pdo.so" >> "$ini_file"; fi if [ "$ext" = "mysql" ]; then enable_extension "mysqlnd" "extension" ext_name="mysqli" @@ -200,6 +201,27 @@ update_extension() { fi } +# Function to install extension from source +add_extension_from_source() { + extension=$1 + repo=$2 + release=$3 + args=$4 + prefix=$5 + ( + add_devtools + delete_extension "$extension" + curl -o /tmp/"$extension".tar.gz -sSL https://github.com/"$repo"/archive/"$release".tar.gz + tar xf /tmp/"$extension".tar.gz -C /tmp + cd /tmp/"$extension-$release" || exit 1 + phpize && ./configure "$args" && make && sudo make install + enable_extension "$extension" "$prefix" + ) >/dev/null 2>&1 + ( + check_extension "$extension" && add_log "$tick" "$extension" "Installed and enabled" + ) || add_log "$cross" "$extension" "Could not install $extension-$release on PHP $semver" +} + # Function to setup a remote tool. add_tool() { url=$1 diff --git a/src/scripts/win32.ps1 b/src/scripts/win32.ps1 index fe0982b3..8f2eba4f 100644 --- a/src/scripts/win32.ps1 +++ b/src/scripts/win32.ps1 @@ -362,7 +362,8 @@ if($version -lt "5.5") { } Update-PhpCAInfo -Path $php_dir -Source $cert_source if ($version -eq 'master') { - Copy-Item $dir"\..\src\bin\php_$env:PHPTS`_pcov.dll" -Destination $ext_dir"\php_pcov.dll" + Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/shivammathur/php-extensions-windows/releases/latest/download/php_$env:phpts`_$arch`_pcov.dll" -OutFile $ext_dir"\php_pcov.dll" >$null 2>&1 + Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/shivammathur/php-extensions-windows/releases/latest/download/php_$env:phpts`_$arch`_xdebug.dll" -OutFile $ext_dir"\php_xdebug.dll" >$null 2>&1 Set-PhpIniKey -Key 'opcache.jit_buffer_size' -Value '256M' -Path $php_dir Set-PhpIniKey -Key 'opcache.jit' -Value '1235' -Path $php_dir } diff --git a/src/utils.ts b/src/utils.ts index 7aee19a5..f63a3c69 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -224,13 +224,17 @@ export async function CSVArray(values_csv: string): Promise> { * @param extension */ export async function getExtensionPrefix(extension: string): Promise { - const zend: Array = ['xdebug', 'opcache', 'ioncube', 'eaccelerator']; + const zend: Array = [ + 'xdebug', + 'xdebug3', + 'opcache', + 'ioncube', + 'eaccelerator' + ]; switch (zend.indexOf(extension)) { - case 0: - case 1: + default: return 'zend_extension'; case -1: - default: return 'extension'; } }