| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- name: "Continuous Integration"
- on:
- - push
- - pull_request
- env:
- COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
- jobs:
- tests:
- name: "CI"
- runs-on: ubuntu-latest
- strategy:
- matrix:
- php-version:
- - "7.2"
- - "7.3"
- - "7.4"
- - "8.0"
- # disabled for now as phpspec/prophecy does not allow 8.1
- # - "8.1"
- dependencies: [highest]
- include:
- - php-version: "7.2"
- dependencies: lowest
- - php-version: "8.0"
- dependencies: lowest
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v2"
- - name: "Install PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: "none"
- php-version: "${{ matrix.php-version }}"
- extensions: mongodb, redis, amqp
- - name: Get composer cache directory
- id: composercache
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- - name: Cache dependencies
- uses: actions/cache@v2
- with:
- path: ${{ steps.composercache.outputs.dir }}
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-composer-
- - name: Remove elasticsearch/elasticsearch on PHP 8
- if: "startsWith(matrix.php-version, '8.')"
- run: 'composer remove elasticsearch/elasticsearch --dev --no-update'
- - name: Add require for mongodb/mongodb to make tests runnable
- run: 'composer require ${{ env.COMPOSER_FLAGS }} mongodb/mongodb --dev --no-update'
- # This does not affect runtime, only tests were fixed in psr/log 1.1.2 so it's
- # ok to require this only when running tests
- - name: Bump required version of psr/log for tests purposes to fix the --prefer-lowest builds
- run: 'composer require ${{ env.COMPOSER_FLAGS }} psr/log:^1.1.2 --no-update'
- - name: "Handle lowest dependencies update"
- if: "contains(matrix.dependencies, 'lowest')"
- run: "echo \"COMPOSER_FLAGS=$COMPOSER_FLAGS --prefer-lowest\" >> $GITHUB_ENV"
- - name: "Install latest dependencies"
- run: |
- composer update ${{ env.COMPOSER_FLAGS }}
- - name: "Run tests"
- run: "composer exec phpunit -- --verbose"
|