on: - pull_request - push name: ci-linux jobs: tests: name: PHP ${{ matrix.php-version }} env: extensions: curl, dom, gd, imagick, intl, json, mbstring, libxml, xml, xmlwriter key: cache-v1 runs-on: ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest php-version: - "5.6" - "7.0" - "7.1" - "7.2" - "7.3" - "7.4" steps: - name: Checkout uses: actions/checkout@v2 - name: Setup cache environment id: cache-env uses: shivammathur/cache-extensions@v1 with: php-version: ${{ matrix.php-version }} extensions: ${{ env.extensions }} key: ${{ env.key }} - name: Cache extensions uses: actions/cache@v1 with: path: ${{ steps.cache-env.outputs.dir }} key: ${{ steps.cache-env.outputs.key }} restore-keys: ${{ steps.cache-env.outputs.key }} - name: Install PHP with extensions uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} extensions: ${{ env.extensions }} ini-values: date.timezone='UTC' coverage: xdebug tools: composer:v2, pecl - name: Determine composer cache directory on Linux run: echo "::set-env name=COMPOSER_CACHE_DIR::$(composer config cache-dir)" - name: Cache dependencies installed with composer uses: actions/cache@v1 with: path: ${{ env.COMPOSER_CACHE_DIR }} key: php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} restore-keys: | php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}- - name: Install dependencies with composer php PHP [5.6 - 7.4] run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader - name: Run tests with codeception with coverage on Linux PHP [5.6 - 7.4] run: | sed -i "s/'cookieValidationKey' => ''/'cookieValidationKey' => 'testkey'/" config/web.php php -S 127.0.0.1:8080 -t public > ./runtime/yii.log 2>&1 & vendor/bin/codecept run --coverage --coverage-xml - name: Upload code coverage scrutinizer on Linux PHP 7.4 if: matrix.php-version == '7.4' run: | wget https://scrutinizer-ci.com/ocular.phar php ocular.phar code-coverage:upload --format=php-clover tests/_output/coverage.xml