name: Process Lock Coverage on: push: branches: [develop] paths: - '.github/workflows/process-lock-coverage.yml' - '.github/actions/setup-php-composer/**' - 'composer.json' - 'composer.lock' - 'lib/CactiProcessLock.php' - 'tests/phpunit-process-lock.xml' - 'tests/Unit/Core/CactiProcessLockTest.php' pull_request: branches: [develop] paths: - '.github/workflows/process-lock-coverage.yml' - '.github/actions/setup-php-composer/**' - 'composer.json' - 'composer.lock' - 'lib/CactiProcessLock.php' - 'tests/phpunit-process-lock.xml' - 'tests/Unit/Core/CactiProcessLockTest.php' workflow_dispatch: permissions: contents: read concurrency: group: process-lock-coverage-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true env: COMPOSER_ALLOW_SUPERUSER: 1 jobs: coverage: name: Process lock 100% coverage runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with: persist-credentials: false - name: Setup locked PHP 8.3 dependencies uses: ./.github/actions/setup-php-composer with: php-version: '8.3' coverage: xdebug extensions: intl, mysql, gd, ldap, gmp, xml, curl, json, mbstring dependency-mode: locked-process-lock-coverage install-args: --prefer-dist --no-progress --no-interaction - name: Enforce line coverage env: XDEBUG_MODE: coverage run: | set -euo pipefail include/vendor/bin/pest \ --configuration=tests/phpunit-process-lock.xml \ --coverage \ --coverage-text \ --min=100