1name: Linux Unit Tests 2 3on: 4 push: 5 branches-ignore: 6 - stable 7 - old-stable 8 pull_request: 9 10concurrency: 11 group: ${{ github.workflow }}-${{ github.ref }} 12 cancel-in-progress: true 13 14permissions: 15 contents: read # to fetch code (actions/checkout) 16 17jobs: 18 run: 19 name: PHP ${{ matrix.php-versions }} 20 runs-on: ubuntu-latest 21 if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository 22 23 strategy: 24 matrix: 25 php-versions: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5'] 26 fail-fast: false 27 28 services: 29 mysql: 30 image: mysql:5.7 31 env: 32 MYSQL_ALLOW_EMPTY_PASSWORD: yes 33 ports: 34 - 3306:3306 35 postgres: 36 image: postgres:latest 37 env: 38 POSTGRES_PASSWORD: postgres 39 ports: 40 - 5432:5432 41 squid: 42 image: ubuntu/squid 43 ports: 44 - 3128:3128 45 steps: 46 - name: Checkout 47 uses: actions/checkout@v4 48 49 - name: Setup PHP 50 uses: shivammathur/setup-php@v2 51 with: 52 php-version: ${{ matrix.php-versions }} 53 extensions: mbstring, intl, PDO, pdo_sqlite, pdo_mysql, pdo_pgsql, bz2 54 ini-values: pcre.jit=0 55 56 - name: Setup problem matchers 57 run: | 58 echo ::add-matcher::${{ runner.tool_cache }}/php.json 59 echo ::add-matcher::${{ runner.tool_cache }}/phpunit.json 60 61 - name: Setup PHPUnit 62 run: | 63 cd _test 64 composer install --no-interaction --no-progress --no-suggest --prefer-dist 65 cp mysql.conf.php.dist mysql.conf.php 66 cp pgsql.conf.php.dist pgsql.conf.php 67 cp proxy.conf.php.dist proxy.conf.php 68 69 - name: Run PHPUnit 70 run: | 71 cd _test 72 composer run test 73