12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- name: "Continuous Integration"
- on:
- pull_request: null
- env:
- COMPOSER_ROOT_VERSION: "2.1"
- jobs:
- phpunit:
- name: "PHPUnit"
- runs-on: "ubuntu-20.04"
- strategy:
- matrix:
- php-version:
- - "7.1"
- - "7.2"
- - "7.3"
- - "7.4"
- - "8.0"
- deps:
- - "normal"
- include:
- - deps: "low"
- php-version: "7.1"
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v2"
- with:
- fetch-depth: 2
- - name: "Install PHP with pcov"
- uses: "shivammathur/setup-php@v2"
- if: "${{ matrix.php-version != '7.1' }}"
- with:
- php-version: "${{ matrix.php-version }}"
- coverage: "pcov"
- - name: "Install PHP with xdebug"
- uses: "shivammathur/setup-php@v2"
- if: "${{ matrix.php-version == '7.1' }}"
- with:
- php-version: "${{ matrix.php-version }}"
- coverage: "xdebug"
- - name: "Cache dependencies installed with composer"
- uses: "actions/cache@v2"
- with:
- path: "~/.composer/cache"
- key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
- restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
- # Remove this block when
- # https://github.com/felixfbecker/php-language-server-protocol/pull/15 is
- # merged and released
- - name: "Remove dependency on vimeo/psalm for PHP8"
- run: "composer remove --dev --no-update vimeo/psalm"
- if: "${{ matrix.php-version == '8.0' }}"
- - name: "Downgrade Composer"
- run: "composer self-update --1"
- if: "${{ matrix.php-version == '7.1' }}"
- - name: "Update dependencies with composer"
- run: "composer update --no-interaction --no-progress --no-suggest"
- if: "${{ matrix.deps == 'normal' }}"
- - name: "Install lowest possible dependencies with composer"
- run: "composer update --no-interaction --no-progress --no-suggest --prefer-dist --prefer-lowest"
- if: "${{ matrix.deps == 'low' }}"
- - name: "Run PHPUnit"
- run: "vendor/bin/phpunit --coverage-clover=coverage.xml"
- - name: "Upload to Codecov"
- uses: "codecov/codecov-action@v1"
|