name: CI Code Checks on: pull_request: push: branches: [ master ] jobs: run: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: php-version: ['8.0', '8.1'] laravel-version: ['^6.0', '^7.0', '^8.0', '^9.0'] exclude: - laravel-version: '^6.0' php-version: '8.1' - laravel-version: '^7.0' php-version: '8.1' name: PHP ${{ matrix.php-version }} - Laravel ${{ matrix.laravel-version }} env: PHP_VERSION: ${{ matrix.php-versions }} steps: - name: Checkout uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} env: runner: ubuntu-18.04 - name: Use appropiate Laravel version run: | composer require "laravel/framework:${{ matrix.laravel-version }}" --no-interaction --no-update - name: Validate composer.json and composer.lock run: composer validate - name: Get composer cache directory id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache Composer packages id: composer-cache uses: actions/cache@v2 with: path: ${{ steps.composercache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install composer packages run: composer install --prefer-dist --no-interaction - name: Tests Coverage run: vendor/bin/phpunit --coverage-clover=coverage.xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: file: ./coverage.xml flags: unittests env_vars: PHP_VERSION fail_ci_if_error: true