| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | name: mainon: [ push, pull_request ]jobs:  test:    runs-on: ubuntu-latest    strategy:      matrix:        php-version:          - '7.1'          - '7.2'          - '7.3'          - '7.4'          - '8.0'          - '8.1'    name: PHP ${{ matrix.php-version }}    steps:      - name: Checkout        uses: actions/checkout@v2      - name: Setup PHP, with composer and extensions        uses: shivammathur/setup-php@v2        with:          php-version: ${{ matrix.php-version }}          extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib          coverage: none      - name: Get composer cache directory        id: composer-cache        run: echo "::set-output name=dir::$(composer config cache-files-dir)"      - name: Cache composer dependencies        uses: actions/cache@v2        with:          path: ${{ steps.composer-cache.outputs.dir }}          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}          restore-keys: ${{ runner.os }}-composer-      - name: Set composer flags        id: composer-lock        if: ${{ matrix.php-version == '8.0' || matrix.php-version == '8.1' }}        run: |          echo "::set-output name=flags::--ignore-platform-reqs"      - name: Install dependencies        run: composer install --no-progress --prefer-dist --optimize-autoloader ${{ steps.composer-lock.outputs.flags }}      - name: Setup problem matchers for PHP        run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"      - name: Setup problem matchers for PHPUnit        run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"      - name: Test with PHPUnit        run: ./vendor/bin/phpunit  phpcs:    runs-on: ubuntu-latest    steps:      - name: Checkout        uses: actions/checkout@v2      - name: Setup PHP, with composer and extensions        uses: shivammathur/setup-php@v2        with:          php-version: 7.4          extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib          coverage: none          tools: cs2pr      - name: Get composer cache directory        id: composer-cache        run: echo "::set-output name=dir::$(composer config cache-files-dir)"      - name: Cache composer dependencies        uses: actions/cache@v2        with:          path: ${{ steps.composer-cache.outputs.dir }}          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}          restore-keys: ${{ runner.os }}-composer-      - name: Install dependencies        run: composer install --no-progress --prefer-dist --optimize-autoloader      - name: Code style with PHP_CodeSniffer        run: ./vendor/bin/phpcs -q --report=checkstyle | cs2pr --graceful-warnings --colorize  coverage:    runs-on: ubuntu-latest    steps:      - name: Checkout        uses: actions/checkout@v2      - name: Setup PHP, with composer and extensions        uses: shivammathur/setup-php@v2        with:          php-version: 7.4          extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib          coverage: pcov      - name: Get composer cache directory        id: composer-cache        run: echo "::set-output name=dir::$(composer config cache-files-dir)"      - name: Cache composer dependencies        uses: actions/cache@v2        with:          path: ${{ steps.composer-cache.outputs.dir }}          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}          restore-keys: ${{ runner.os }}-composer-      - name: Install dependencies        run: composer install --no-progress --prefer-dist --optimize-autoloader      - name: Coverage        run: |          ./vendor/bin/phpunit --coverage-text
 |