mirror of
https://github.com/Respect/Validation.git
synced 2026-03-22 17:54:41 +01:00
Although I love PHPT files, and I've done my fair share of making it easier to write them in this library, they're very slow, and running them has become a hindrance. I've been fidgeting with the idea of using Pest for a while, and I think it's the right tool for the job. I had to create a couple of functions to make it easier to run those tests, and now they're working really alright. I migrated all the PHPT files into Pest files -- I automated most of the work with a little script using "nikic/php-parser"; this commit should contain all the previous PHPT tests as Pest tests. The previous integration tests would take sixteen seconds, and the Pest tests take less than a second.
113 lines
2.6 KiB
YAML
113 lines
2.6 KiB
YAML
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:
|
|
- "8.1"
|
|
- "8.2"
|
|
- "8.3"
|
|
- "8.4"
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- 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/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@v4
|
|
|
|
- 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/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@v4
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.4
|
|
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
|