Profiler Deprecated Warning fixes #128
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: PHPUnit | |
| on: [push, pull_request] | |
| jobs: | |
| tests: | |
| runs-on: ubuntu-latest | |
| if: "!contains(github.event.head_commit.message, '[ci skip]')" | |
| env: | |
| PHP_INI_VALUES: assert.exception=1, zend.assertions=1 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: ['8.5', '8.4', '8.3', '8.2', '8.1', '8.0', '7.4'] | |
| DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ] | |
| compiler: [ default ] | |
| include: | |
| - php: '8.5' | |
| DB: 'pdo/mysql' | |
| compiler: jit | |
| - php: '8.5' | |
| DB: 'pdo/pgsql' | |
| compiler: jit | |
| - php: '8.5' | |
| DB: 'pdo/sqlite' | |
| compiler: jit | |
| - php: '8.5' | |
| DB: 'mysqli' | |
| compiler: jit | |
| - php: '8.5' | |
| DB: 'pgsql' | |
| compiler: jit | |
| - php: '8.5' | |
| DB: 'sqlite' | |
| compiler: jit | |
| - php: '8.4' | |
| DB: 'pdo/mysql' | |
| compiler: jit | |
| - php: '8.4' | |
| DB: 'pdo/pgsql' | |
| compiler: jit | |
| - php: '8.4' | |
| DB: 'pdo/sqlite' | |
| compiler: jit | |
| - php: '8.4' | |
| DB: 'mysqli' | |
| compiler: jit | |
| - php: '8.4' | |
| DB: 'pgsql' | |
| compiler: jit | |
| - php: '8.4' | |
| DB: 'sqlite' | |
| compiler: jit | |
| - php: '8.3' | |
| DB: 'pdo/mysql' | |
| compiler: jit | |
| - php: '8.3' | |
| DB: 'pdo/pgsql' | |
| compiler: jit | |
| - php: '8.3' | |
| DB: 'pdo/sqlite' | |
| compiler: jit | |
| - php: '8.3' | |
| DB: 'mysqli' | |
| compiler: jit | |
| - php: '8.3' | |
| DB: 'pgsql' | |
| compiler: jit | |
| - php: '8.3' | |
| DB: 'sqlite' | |
| compiler: jit | |
| - php: '8.2' | |
| DB: 'pdo/mysql' | |
| compiler: jit | |
| - php: '8.2' | |
| DB: 'pdo/pgsql' | |
| compiler: jit | |
| - php: '8.2' | |
| DB: 'pdo/sqlite' | |
| compiler: jit | |
| - php: '8.2' | |
| DB: 'mysqli' | |
| compiler: jit | |
| - php: '8.2' | |
| DB: 'pgsql' | |
| compiler: jit | |
| - php: '8.2' | |
| DB: 'sqlite' | |
| compiler: jit | |
| - php: '8.1' | |
| DB: 'pdo/mysql' | |
| compiler: jit | |
| - php: '8.1' | |
| DB: 'pdo/pgsql' | |
| compiler: jit | |
| - php: '8.1' | |
| DB: 'pdo/sqlite' | |
| compiler: jit | |
| - php: '8.1' | |
| DB: 'mysqli' | |
| compiler: jit | |
| - php: '8.1' | |
| DB: 'pgsql' | |
| compiler: jit | |
| - php: '8.1' | |
| DB: 'sqlite' | |
| compiler: jit | |
| - php: '8.0' | |
| DB: 'pdo/mysql' | |
| compiler: jit | |
| - php: '8.0' | |
| DB: 'pdo/pgsql' | |
| compiler: jit | |
| - php: '8.0' | |
| DB: 'pdo/sqlite' | |
| compiler: jit | |
| - php: '8.0' | |
| DB: 'mysqli' | |
| compiler: jit | |
| - php: '8.0' | |
| DB: 'pgsql' | |
| compiler: jit | |
| - php: '8.0' | |
| DB: 'sqlite' | |
| compiler: jit | |
| services: | |
| postgres: | |
| image: postgres:12 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: ci_test | |
| ports: | |
| - 5432:5432 | |
| options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3 | |
| mysql: | |
| image: mysql:8.0 | |
| env: | |
| MYSQL_ALLOW_EMPTY_PASSWORD: true | |
| MYSQL_USER: travis | |
| MYSQL_PASSWORD: travis | |
| MYSQL_DATABASE: ci_test | |
| ports: | |
| - 3306:3306 | |
| options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Override PHP ini values for JIT compiler | |
| if: matrix.compiler == 'jit' | |
| run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV | |
| - name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }} | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| tools: composer, pecl | |
| extensions: imagick, sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, mbstring | |
| ini-values: ${{ env.PHP_INI_VALUES }} | |
| coverage: pcov # CHANGED from 'xdebug' to 'pcov' | |
| - name: Get composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Cache composer dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| # --- CRUCIAL NEW STEP WITH CORRECT INDENTATION --- | |
| - name: Conditionally Lock PHPUnit 9 for older PHP versions | |
| if: matrix.php == '7.4' || matrix.php == '8.0' | |
| # This command updates the dependency in composer.json/lock without installing. | |
| run: composer require --dev --no-update "phpunit/phpunit:^9.0" | |
| - name: Install composer dependencies | |
| # This runs the actual install after the lock/update (if any) | |
| run: composer install --no-progress --prefer-dist --optimize-autoloader | |
| - name: PHPUnit Test | |
| run: | | |
| # 1. Determine the configuration file based on PHP version | |
| # Use the _v9 config file for older PHPUnit versions (PHP 7.4 & 8.0) | |
| if [ "${{ matrix.php }}" = "7.4" ] || [ "${{ matrix.php }}" = "8.0" ]; then | |
| CONFIG_FILE="tests/travis/${{ matrix.DB }}.phpunit_v9.xml" | |
| STRICT_FLAGS="" # V9 files handle strictness via XML attributes | |
| else | |
| # Use the modern config file for PHPUnit 10/11 (PHP 8.1+) | |
| CONFIG_FILE="tests/travis/${{ matrix.DB }}.phpunit.xml" | |
| # Explicitly add flags to force failure on PHP Warnings/Notices, | |
| # as the XML schema doesn't allow the modern equivalent tags. | |
| STRICT_FLAGS="--fail-on-warning --fail-on-notice" | |
| fi | |
| # 2. Execute PHPUnit with dynamic configuration and flags | |
| php -d error_reporting=E_ALL -d zend.enable_gc=0 -d date.timezone=UTC vendor/bin/phpunit \ | |
| --coverage-text \ | |
| --configuration ${CONFIG_FILE} \ | |
| ${STRICT_FLAGS} |