diff --git a/.github/workflows/ci_build.yml b/.github/workflows/ci_build.yml index 74164788..2e49d6e5 100644 --- a/.github/workflows/ci_build.yml +++ b/.github/workflows/ci_build.yml @@ -8,12 +8,13 @@ on: jobs: build: - name: PHP ${{ matrix.php-versions }} + name: PHP ${{ matrix.php-versions }} (${{ matrix.dependency-versions }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: php-versions: ['8.3', '8.4', '8.5'] + dependency-versions: ['lowest', 'latest'] steps: - name: Setup PHP Action uses: shivammathur/setup-php@v2 @@ -27,13 +28,18 @@ jobs: mysql-version: '8.0' - run: mysql -uroot -h127.0.0.1 -e 'SELECT version()' - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Import DB run: "mysql -u root -h 127.0.0.1 -e 'create database errorheromodule' && mysql -u root -h 127.0.0.1 errorheromodule < spec/Fixture/data/sql.sql" - name: "Validate composer.json" run: "composer validate" - - name: "Install dependencies" - run: "composer install --ignore-platform-reqs" + - name: "Install dependencies (${{ matrix.dependency-versions }})" + run: | + if [ "${{ matrix.dependency-versions }}" = "lowest" ]; then + composer update --prefer-lowest --prefer-stable --no-interaction --no-progress --ignore-platform-reqs + else + composer update --no-interaction --no-progress --ignore-platform-reqs + fi - name: "CS Check" run: "composer cs-check" - name: "Code analyze" @@ -41,19 +47,19 @@ jobs: composer phpstan bin/rector process --dry-run - name: "Run test suite (no coverage)" - if: matrix.php-versions != '8.4' + if: matrix.php-versions != '8.4' || matrix.dependency-versions != 'latest' run: | composer dump-autoload -o bin/kahlan - name: "Run test suite (with coverage)" - if: matrix.php-versions == '8.4' + if: matrix.php-versions == '8.4' && matrix.dependency-versions == 'latest' run: | composer dump-autoload -o mkdir -p build/logs && bin/kahlan --coverage=4 --reporter=verbose --clover=build/logs/clover.xml - name: Upload coverage to Codecov - if: matrix.php-versions == '8.4' + if: matrix.php-versions == '8.4' && matrix.dependency-versions == 'latest' uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/composer.json b/composer.json index 21d0fc3b..7640ba48 100644 --- a/composer.json +++ b/composer.json @@ -40,12 +40,12 @@ "laminas/laminas-diactoros": "^3.8", "laminas/laminas-log": "^2.17.1", "laminas/laminas-mail": "^2.25.1", - "laminas/laminas-psr7bridge": "^1.11", - "laminas/laminas-uri": "^2.13", + "laminas/laminas-psr7bridge": "^1.12", + "laminas/laminas-uri": "^2.14", "psr/container": "^1.1.2 || 2.0", - "samsonasik/array-lookup": "^2.0", + "samsonasik/array-lookup": "^2.3", "seld/jsonlint": "^1.11", - "webmozart/assert": "^1.11" + "webmozart/assert": "^1.12.1 || ^2.1" }, "conflict": { "doctrine/dbal": "<3.0", @@ -56,22 +56,26 @@ "laminas/laminas-mvc-console": "*" }, "require-dev": { - "doctrine/dbal": "^3.9.3", + "doctrine/dbal": "^3.10.4", "doctrine/doctrine-orm-module": "^6.3.0", + "guzzlehttp/promises": "^2.3", "kahlan/kahlan": "^6.1", - "laminas/laminas-cli": "^1.11", - "laminas/laminas-coding-standard": "^3.0", - "laminas/laminas-form": "^2.16 || ^3.21", + "laminas/laminas-cli": "^1.13", + "laminas/laminas-coding-standard": "^3.1", + "laminas/laminas-form": "^2.16 || ^3.24.2", "laminas/laminas-mvc": "^3.8", - "laminas/laminas-servicemanager": "^3.23", - "mezzio/mezzio": "^3.20.1", - "mezzio/mezzio-laminasviewrenderer": "^2.16", - "php-coveralls/php-coveralls": "^2.7.0", - "phpstan/phpstan": "^2.0.4", + "laminas/laminas-servicemanager": "^3.24", + "laminas/laminas-stdlib": "^3.21", + "mezzio/mezzio": "^3.27.0", + "mezzio/mezzio-laminasviewrenderer": "^2.19", + "php-coveralls/php-coveralls": "^2.9.1", + "phpstan/phpstan": "^2.1.37", "phpstan/phpstan-webmozart-assert": "^2.0", - "pimple/pimple": "^3.5", + "pimple/pimple": "^3.6.1", "rector/rector": "dev-main", - "symfony/dependency-injection": "^5.4.48" + "symfony/console": "^6.4.32", + "symfony/dependency-injection": "^5.4.48", + "symfony/string": "^7.4.4" }, "suggest": { "mezzio/mezzio-laminasviewrenderer": "^2.0 to be able to use laminas-view template engine in mezzio ^3.0",