Skip to content

chore(deps): update phpstan packages #922

chore(deps): update phpstan packages

chore(deps): update phpstan packages #922

Workflow file for this run

name: "Build"
on:
pull_request:
paths-ignore:
- doc/**
push:
paths-ignore:
- doc/**
branches:
- main
- v*.*
env:
php-extensions: mbstring, intl, mysqli, pgsql, sqlsrv-5.10.0beta2
php-extensions-key: v2
php-tools: "composer:v2, pecl"
jobs:
phpstan:
name: PHPStan
runs-on: ubuntu-latest
strategy:
matrix:
php-version: [ '8.1', '8.2', '8.3', '8.4', '8.5' ]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup PHP with pecl extension
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
- name: Get composer cache directory
id: composercache
run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
- name: Cache dependencies
uses: actions/cache@v5
with:
path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --prefer-dist
- name: Run PHPStan
run: composer phpstan
tests:
name: Tests
strategy:
fail-fast: false
matrix:
php-version: [ '8.1', '8.2', '8.3', '8.4', '8.5' ]
deps: [ 'lowest', 'newest' ]
exclude:
- php-version: '8.2'
deps: lowest
- php-version: '8.3'
deps: lowest
- php-version: '8.4'
deps: lowest
- php-version: '8.5'
deps: lowest
runs-on: ubuntu-latest
services:
mysql:
image: mysql:9.5
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: nextras_orm_test
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping -proot"
--health-interval=10s
--health-timeout=5s
--health-retries=5
--tmpfs /var/lib/mysql
mariadb:
image: mariadb:12.1
env:
MARIADB_DATABASE: nextras_orm_test
MARIADB_ROOT_PASSWORD: root
ports:
- 3406:3306
options: >-
--health-cmd "healthcheck.sh --connect --innodb_initialized"
--health-interval 10s
--health-start-period 10s
--health-timeout 5s
--health-retries 10
--tmpfs /var/lib/mysql
postgres:
image: postgres:17
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: nextras_orm_test
POSTGRES_INITDB_ARGS: "--auth-host=trust"
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
--tmpfs /var/lib/postgresql/data
mssql:
image: mcr.microsoft.com/mssql/server:latest
env:
ACCEPT_EULA: Y
SA_PASSWORD: YourStrong!Passw0rd
MSSQL_PID: Developer
ports:
- 1433:1433
options: >-
--name=mssql
--health-cmd "/opt/mssql-tools18/bin/sqlcmd -C -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'SELECT 1'"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install Microsoft ODBC
run: sudo apt-get update && sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y
- name: Create MS SQL Database
run: docker exec -i mssql /opt/mssql-tools18/bin/sqlcmd -C -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'CREATE DATABASE nextras_orm_test'
- name: Setup databases
run: |
for container in $(docker ps -q --filter "ancestor=mariadb"); do docker exec "$container" bash -c "apt-get update && apt-get install -y tzdata && mariadb-tzinfo-to-sql /usr/share/zoneinfo 2>/dev/null | mariadb -u root -proot mysql"; done
for container in $(docker ps -q --filter "ancestor=mariadb"); do docker exec "mysql -uroot -proot -e \"SET GLOBAL innodb_flush_log_at_trx_commit=0; SET GLOBAL innodb_doublewrite=0; SET GLOBAL sql_log_bin=0;\""; done
for container in $(docker ps -q --filter "ancestor=mysql"); do docker exec "mysql -uroot -proot -e \"SET GLOBAL innodb_flush_log_at_trx_commit=0; SET GLOBAL innodb_doublewrite=0; SET GLOBAL sql_log_bin=0;\""; done
for container in $(docker ps -q --filter "ancestor=postgres"); do docker exec "psql -U postgres -c 'ALTER SYSTEM SET fsync=off; ALTER SYSTEM SET synchronous_commit=off; ALTER SYSTEM SET full_page_writes=off;' && pg_ctl reload"; done
- name: Setup PHP cache environment
id: php-extensions-cache
uses: shivammathur/cache-extensions@v1
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.php-extensions }}
key: ${{ env.php-extensions-key }}
- name: Cache PHP extensions
uses: actions/cache@v5
with:
path: ${{ steps.php-extensions-cache.outputs.dir }}
key: ${{ steps.php-extensions-cache.outputs.key }}
restore-keys: ${{ steps.php-extensions-cache.outputs.key }}
- name: Setup PHP with pecl extension
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.php-extensions }}
tools: ${{ env.php-tools }}
coverage: pcov
- name: Get composer cache directory
id: composercache
run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
- name: Cache dependencies
uses: actions/cache@v5
with:
path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
if: matrix.deps == 'newest'
run: composer update --prefer-dist --no-interaction --no-progress --no-suggest
- name: Install lowest dependencies
if: matrix.deps == 'lowest'
run: composer update --prefer-dist --no-interaction --no-progress --no-suggest --prefer-lowest --prefer-stable
- name: Init config
run: cp ./tests/databases.github.ini ./tests/databases.ini
- name: Tests
run: ./tests/run.sh ./tests/cases --coverage ./clover.xml --coverage-src ./src
- name: Print failed expectations
if: ${{ failure() }}
run: |
find tests -name \*.actual -exec echo "--- {}" \; -exec cat {} \; -exec echo \; -exec echo \; && \
find tests -name \*.log -exec echo "--- {}" \; -exec cat {} \; -exec echo \; -exec echo \;
- name: Send coverage report
continue-on-error: true
env:
COVERALLS_PARALLEL: "true"
COVERALLS_FLAG_NAME: run-${{ matrix.php-version }}
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
composer global require php-coveralls/php-coveralls "symfony/console:<6.0" --prefer-dist --no-interaction --no-progress --no-suggest && \
php-coveralls -v --coverage_clover=./clover.xml --json_path=./coveralls-upload.json
coverage-finish:
name: Code coverage finish
needs: tests
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl -k "https://coveralls.io/webhook?repo_name=$GITHUB_REPOSITORY&repo_token=$COVERALLS_REPO_TOKEN" -d "payload[build_num]=$GITHUB_RUN_ID&payload[status]=done"