name: PHP on: push: branches: [ master ] pull_request: branches: [ master ] jobs: run: runs-on: ubuntu-latest services: mysql: image: mysql:5.7 ports: - 3306:3306 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes redis: image: redis:6.0 ports: - 6379:6379 mongo: image: mongo:4.2-bionic ports: - 27017:27017 memcached: image: memcached:1.6 ports: - 11211:11211 strategy: fail-fast: false matrix: include: - php: 7.2 composer: '--prefer-lowest' desc: "Lowest versions" - php: 7.4 composer: '--prefer-lowest' desc: "Lowest versions" - php: 7.2 - php: 7.3 - php: 7.4 coverage: '--coverage-clover /tmp/clover.xml' - php: 8.0 name: PHP ${{ matrix.php }} ${{ matrix.desc }} steps: - uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: xdebug extensions: apcu, mongodb, memcached ini-values: apc.enable_cli=1,mysqli.default_host=127.0.0.1,mysqli.default_port=3306,mysqli.default_user=root - name: Validate composer.json and composer.lock run: composer validate - name: Install dependencies run: composer update --prefer-dist --no-progress ${{ matrix.composer }} - name: Run PHPUnit run: vendor/bin/phpunit ${{ matrix.coverage }} - name: Upload coverage to Scrutinizer if: ${{ matrix.coverage }} run: > wget https://scrutinizer-ci.com/ocular.phar -O "/tmp/ocular.phar" && php "/tmp/ocular.phar" code-coverage:upload --format=php-clover /tmp/clover.xml