name: phpunit on: - pull_request - push jobs: phpunit: name: phpunit runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest php: - '8.1' nsq: - nsq-1.2.0.linux-amd64.go1.12.9 - nsq-1.2.1.linux-amd64.go1.16.6 dependencies: - lowest - highest steps: - name: Checkout uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: pcov extensions: kjdev/php-ext-snappy@0.2.1 env: update: true - name: Download NSQ run: | curl -sSL "http://bitly-downloads.s3.amazonaws.com/nsq/${{ matrix.nsq }}.tar.gz" \ | tar -xzv --strip-components=1 ./bin/nsqd --version - name: Setup Problem Matchers for PHPUnit run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Determine Composer cache directory id: composer-cache run: echo "::set-output name=directory::$(composer config cache-dir)" - name: Cache Composer dependencies uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.directory }} key: ${{ runner.os }}-${{ matrix.php }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.dependencies }}-composer- - name: Install highest dependencies run: composer update --no-progress --no-interaction --prefer-dist if: ${{ matrix.dependencies == 'highest' }} - name: Install lowest dependencies run: composer update --no-progress --no-interaction --prefer-dist --prefer-lowest if: ${{ matrix.dependencies == 'lowest' }} - name: Run tests run: vendor/bin/phpunit --coverage-clover=build/coverage-report.xml - name: Upload code coverage uses: codecov/codecov-action@v1 with: file: build/coverage-report.xml