name: Continuous Integration on: push: paths-ignore: - 'bin/**' - 'docs/**' pull_request: paths-ignore: - 'bin/**' - 'docs/**' jobs: tests: name: Tests runs-on: ubuntu-latest strategy: matrix: php-version: - "7.4" - "8.0" - "8.1" - "8.2" steps: - name: Checkout uses: actions/checkout@v2 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: none extensions: uopz tools: pecl - name: Install Localisation Files run: | sudo locale-gen --no-purge --lang nl_NL.UTF-8 sudo locale-gen --no-purge --lang pt_BR.UTF-8 sudo locale-gen --no-purge --lang ru_RU.UTF-8 - name: Install Dependencies run: composer install --prefer-dist ${{ matrix.composer-extra-arguments }} - name: Run Unit Tests run: ./vendor/phpunit/phpunit/phpunit --testsuite=unit - name: Run Integration Tests run: ./vendor/phpunit/phpunit/phpunit --testsuite=integration code-coverage: name: Code coverage runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.1 coverage: pcov extensions: uopz tools: pecl - name: Install Localisation Files run: | sudo locale-gen --no-purge --lang nl_NL.UTF-8 sudo locale-gen --no-purge --lang pt_BR.UTF-8 sudo locale-gen --no-purge --lang ru_RU.UTF-8 - name: Install Dependencies run: composer install --prefer-dist ${{ matrix.composer-extra-arguments }} - name: Generating Code Coverage Report run: ./vendor/phpunit/phpunit/phpunit --coverage-clover=coverage.xml - name: Send Code Coverage Report to Codecov.io uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} static-analysis: name: Static Analysis runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.1 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