12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- name: CI
- on:
- workflow_dispatch:
- push:
- paths:
- - 'src/**'
- - 'test/**'
- - 'composer.json'
- - 'phpunit.xml.dist'
- pull_request:
- paths:
- - 'src/**'
- - 'test/**'
- - 'composer.json'
- - 'phpunit.xml.dist'
- jobs:
- tests:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: true
- matrix:
- php: ['7.3', '7.4', '8.0', '8.1', '8.2']
- laravel: [5.5.*, 6.*, 7.*, '^8.0', '^9.0']
- dependency-version: [prefer-lowest, prefer-stable]
- exclude:
- - laravel: '^9.0'
- php: '7.3'
- - laravel: '^9.0'
- php: '7.4'
- name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }}
- env:
- EXTENSIONS: dom, curl, bcmath, libxml, mbstring, fileinfo
- EXT_CACHE_KEY: ext-cache-v1
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Setup extensions cache environment
- id: cache-env
- uses: shivammathur/cache-extensions@v1
- with:
- php-version: ${{ matrix.php }}
- extensions: ${{ env.EXTENSIONS }}
- key: ${{ env.EXT_CACHE_KEY }}
- - name: Cache extensions
- uses: actions/cache@v1
- with:
- path: ${{ steps.cache-env.outputs.dir }}
- key: ${{ steps.cache-env.outputs.key }}
- restore-keys: ${{ steps.cache-env.outputs.key }}
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php }}
- extensions: ${{ env.EXTENSIONS }}
- coverage: none #pcov
- 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@v1
- with:
- path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ runner.os }}-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-
- - name: Install dependencies
- run: |
- composer require "illuminate/support:${{ matrix.laravel }}" --no-interaction --no-update --no-progress --no-suggest --ignore-platform-req=php
- composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest --ignore-platform-req=php
- - name: Execute tests
- run: composer test
- - name: Check .php files for syntax errors
- run: composer php:syntax -- --checkstyle | cs2pr
- - uses: actions/cache@v3
- id: cache-db
- with:
- path: ~/.symfony/cache
- key: db
- - name: Check composer dependencies for known security issues
- uses: symfonycorp/security-checker-action@v3
- with:
- lock: ./composer.lock
|