name: CakePHP Unit Tests & Quality Gate on: push: branches: [ main, master, develop ] pull_request: branches: [ main, master, develop ] jobs: unit-tests: name: Unit Tests (PHP ${{ matrix.php }} - CakePHP) runs-on: ubuntu-latest strategy: fail-fast: false matrix: php: ['8.1', '8.2', '8.3'] steps: - name: Checkout Code uses: actions/checkout@v4 - name: Setup PHP & Extensions uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: mbstring, intl, dom, fileinfo, sqlite3, pdo_sqlite, pcov coverage: pcov tools: composer:v2 - name: Cache Composer Dependencies uses: actions/cache@v4 with: path: vendor key: ${{ runner.os }}-php-${{ matrix.php }}-cakephp-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-php-${{ matrix.php }}-cakephp- - name: Install Dependencies run: composer update --prefer-stable --prefer-dist --no-interaction --no-progress - name: Run CakePHP Tests with Coverage run: | if [ -f "bin/cake" ]; then bin/cake test app --coverage-clover coverage.xml else ./vendor/bin/phpunit --coverage-clover coverage.xml fi env: TMP: /tmp/