| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | name: "Continuous Integration"on:  - pull_request  - pushenv:  COMPOSER_ROOT_VERSION: 1.99jobs:  composer-json-lint:    name: "Lint composer.json"    runs-on: "ubuntu-latest"    strategy:      matrix:        php-version:          - "8.1"    steps:      - name: "Checkout"        uses: "actions/checkout@v2"      - name: "Install PHP"        uses: "shivammathur/setup-php@v2"        with:          coverage: "none"          php-version: "${{ matrix.php-version }}"          tools: composer-normalize      - 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 }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }}          restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-      - name: "Install dependencies"        run: "composer update --no-interaction --no-progress"      - name: "Validate composer.json"        run: "composer validate --strict"      - name: "Normalize composer.json"        run: "composer-normalize --dry-run"  tests:    name: "Tests"    runs-on: "ubuntu-latest"    strategy:      matrix:        php-version:          - "7.1"          - "7.2"          - "7.3"          - "7.4"          - "8.0"          - "8.1"        dependencies:          - "lowest"          - "highest"    steps:      - name: "Checkout"        uses: "actions/checkout@v2"      - name: "Install PHP"        uses: "shivammathur/setup-php@v2"        with:          php-version: "${{ matrix.php-version }}"          ini-values: zend.assertions=1      - 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 }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }}          restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-      - name: "Install lowest dependencies"        if: ${{ matrix.dependencies == 'lowest' }}        run: "composer update --no-interaction --no-progress --prefer-lowest"      - name: "Install highest dependencies"        if: ${{ matrix.dependencies == 'highest' }}        run: "composer update --no-interaction --no-progress"      - name: "Run tests"        timeout-minutes: 3        run: "vendor/bin/phpunit"
 |