Skip to content

Fix coverage on codeconv #13

Fix coverage on codeconv

Fix coverage on codeconv #13

Workflow file for this run

name: PHPUnit
on:
push:
branches:
- '*.x'
pull_request:
branches:
- '*.x'
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
dependency-version: [prefer-lowest, prefer-stable]
exclude:
# PHPUnit 12 has compatibility issues with prefer-lowest on multiple PHP versions
- php: '8.1'
dependency-version: prefer-lowest
- php: '8.2'
dependency-version: prefer-lowest
- php: '8.3'
dependency-version: prefer-lowest
- php: '8.4'
dependency-version: prefer-lowest
- php: '8.5'
dependency-version: prefer-lowest
name: P${{ matrix.php }} - ${{ matrix.dependency-version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, json
coverage: none
- name: Setup problem matchers
run: |
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-${{ matrix.php }}-
- name: Configure platform for PHP 8.5
if: matrix.php == '8.5'
run: composer config platform.php 8.4.0
- name: Install dependencies
run: composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-progress
- name: List Installed Dependencies
run: composer show -D
- name: Execute tests
run: vendor/bin/phpunit --no-coverage
coverage:
runs-on: ubuntu-latest
name: Coverage
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, json
coverage: xdebug3
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-8.3-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-8.3-
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress
- name: Check Xdebug status
run: php -m | grep -i xdebug
- name: Execute tests with coverage
run: |
echo "Current working directory: $(pwd)"
echo "PHPUnit command: vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover"
export XDEBUG_MODE=coverage
echo "Xdebug mode set to: $XDEBUG_MODE"
vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover
echo "PHPUnit exit code: $?"
- name: Check if coverage file was created
run: |
echo "Checking for coverage file..."
echo "Current directory contents:"
ls -la
echo "Looking for clover files:"
ls -la *.clover 2>/dev/null || echo "No clover files found in current directory"
echo "Searching entire directory tree:"
find . -name "*.clover" -type f 2>/dev/null || echo "No clover files found anywhere"
echo "Checking if Xdebug coverage mode is working:"
php -r "echo 'Xdebug mode: ' . (getenv('XDEBUG_MODE') ?: 'not set') . PHP_EOL;"
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.clover
fail_ci_if_error: false