name: Continuous Integration (code) on: push: paths-ignore: - 'bin/**' - 'docs/**' pull_request: paths-ignore: - 'bin/**' - 'docs/**' jobs: tests: name: Tests runs-on: ubuntu-latest strategy: matrix: php-version: - "8.5" steps: - name: Checkout uses: actions/checkout@v6 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: none - name: Install Dependencies run: composer install --prefer-dist ${{ matrix.composer-extra-arguments }} - name: Run Unit Tests run: ./vendor/bin/phpunit --testsuite=unit - name: Run Integration Tests run: ./vendor/bin/pest --testsuite=feature --compact code-coverage: name: Code coverage runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.5 coverage: pcov - name: Install Dependencies run: composer install --prefer-dist ${{ matrix.composer-extra-arguments }} - name: Generating Code Coverage Report run: ./vendor/bin/pest --compact --coverage-clover=coverage.xml - name: Send Code Coverage Report to Codecov.io uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} static-analysis: name: Static Analysis runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.5 coverage: none - name: Install dependencies run: composer install --prefer-dist - name: Run DocHeader run: vendor/bin/docheader check library/ tests/ - name: Run PHP_CodeSniffer run: vendor/bin/phpcs - name: Run PHPStan run: vendor/bin/phpstan analyze