Add 'omit_spl_id' hint to hide spl info of generated objects #129
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# TODO: | |
# * Way to only show the test in question instead of having it striped off | |
# * Way to mark static tests failed but continue anyway | |
name: Tests | |
on: [push, pull_request] | |
jobs: | |
test-format: | |
name: 'Code format check' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: latest | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.3 | |
- uses: actions/cache@v4 | |
id: vendor-caches | |
with: | |
path: | | |
./vendor | |
./node_modules | |
key: ${{ hashFiles('./composer.lock', './package-lock.json') }} | |
- run: composer install | |
if: steps.vendor-caches.outputs.cache-hit != 'true' | |
- run: composer format | |
env: | |
PHP_CS_FIXER_IGNORE_ENV: 1 | |
- run: git status | |
- run: git diff-files --quiet --exit-code | |
test-build: | |
name: 'Build check' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: latest | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.3 | |
ini-values: 'phar.readonly=Off' | |
- uses: actions/cache@v4 | |
id: vendor-caches | |
with: | |
path: | | |
./vendor | |
./node_modules | |
key: ${{ hashFiles('./composer.lock', './package-lock.json') }} | |
- run: composer install | |
if: steps.vendor-caches.outputs.cache-hit != 'true' | |
- run: composer clean | |
- run: composer build | |
- run: git status | |
- run: git diff-files --quiet --exit-code | |
test-static: | |
name: 'Static analysis check' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: latest | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.3 | |
- uses: actions/cache@v4 | |
id: vendor-caches | |
with: | |
path: | | |
./vendor | |
./node_modules | |
key: ${{ hashFiles('./composer.lock', './package-lock.json') }} | |
- run: composer install | |
if: steps.vendor-caches.outputs.cache-hit != 'true' | |
- run: composer analyze | |
continue-on-error: true | |
test-basic: | |
name: 'Basic test ${{ matrix.php-coverage }}' | |
runs-on: ubuntu-latest | |
services: | |
mysql: | |
image: mysql:latest | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
ports: | |
- 3306 | |
# Should increase test consistency by ensuring mysql actually starts up properly | |
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 | |
strategy: | |
matrix: | |
php-coverage: | |
- none | |
- xdebug | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: latest | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.3 | |
coverage: ${{ matrix.php-coverage }} | |
- uses: actions/cache@v4 | |
id: vendor-caches | |
with: | |
path: | | |
./vendor | |
./node_modules | |
key: ${{ hashFiles('./composer.lock', './package-lock.json') }} | |
- run: composer install | |
if: steps.vendor-caches.outputs.cache-hit != 'true' | |
- run: php ./vendor/bin/phpunit tests | |
env: | |
MYSQLI_HOST: localhost:${{ job.services.mysql.ports['3306'] }} | |
tests: | |
name: 'PHP ${{ matrix.php-versions }} ${{ matrix.phar }}tests' | |
needs: | |
- test-format | |
- test-build | |
- test-static | |
- test-basic | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php-versions: | |
- 7.4 | |
- 8.0 | |
- 8.1 | |
- 8.2 | |
- 8.3 | |
- 8.4 | |
phar: | |
- "phar " | |
- "" | |
services: | |
mysql: | |
image: mysql:latest | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
ports: | |
- 3306 | |
# Should increase test consistency by ensuring mysql actually starts up properly | |
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: latest | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-versions }} | |
- uses: actions/cache@v4 | |
id: vendor-caches | |
with: | |
path: | | |
./vendor | |
./node_modules | |
key: ${{ hashFiles('./composer.lock', './package-lock.json') }} | |
- run: composer install | |
if: steps.vendor-caches.outputs.cache-hit != 'true' | |
- run: sudo systemctl start mysql # Only needed for 8.1 | |
- run: php ./vendor/bin/phpunit --no-coverage tests | |
if: '!matrix.phar' | |
env: | |
MYSQLI_HOST: localhost:${{ job.services.mysql.ports['3306'] }} | |
- run: php ./vendor/bin/phpunit --no-coverage --prepend ./build/kint.phar tests | |
if: matrix.phar | |
env: | |
KINT_PHAR_TEST: 1 | |
MYSQLI_HOST: localhost:${{ job.services.mysql.ports['3306'] }} |