CI #2888
This file contains hidden or 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
| name: CI | |
| on: | |
| push: ~ | |
| pull_request: ~ | |
| schedule: | |
| - cron: '44 13 * * *' | |
| jobs: | |
| tests: | |
| name: Tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php-version: | |
| - "8.5" | |
| - "8.4" | |
| - "8.3" | |
| - "8.2" | |
| dependencies: | |
| - "highest" | |
| - "lowest" | |
| - "latest" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: "Setup PHP" | |
| uses: "shivammathur/setup-php@v2" | |
| with: | |
| php-version: ${{ matrix.php-version }} | |
| coverage: "xdebug" | |
| tools: cs2pr | |
| ini-values: "error_reporting=E_ALL, display_errors=On" | |
| env: | |
| COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Verify PHP version used | |
| run: | | |
| php -v && php -m; | |
| - name: Setup problem matchers for PHP | |
| run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" | |
| - name: Setup problem matchers for PHPUnit | |
| run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" | |
| - name: Validate composer.json | |
| run: composer validate --strict | |
| - name: Get composer cache directory | |
| id: composercache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Set up build cache | |
| uses: "actions/cache@v4" | |
| with: | |
| path: | | |
| ${{ steps.composercache.outputs.dir }} | |
| "build/php-code-coverage-cache" | |
| ".php-cs-fixer.cache" | |
| key: php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-${{ github.ref }}-${{ github.sha }} | |
| restore-keys: | | |
| php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-${{ github.ref }} | |
| php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }} | |
| - name: Remove PHP-CS-Fixer if not called | |
| if: matrix.php-version != '8.4' || matrix.dependencies != 'highest' | |
| run: composer remove --dev --no-update "friendsofphp/php-cs-fixer"; | |
| - name: Install dependencies (low) | |
| if: matrix.dependencies == 'lowest' | |
| run: | | |
| composer update --prefer-lowest --no-interaction --prefer-dist; | |
| composer show; | |
| - name: Install dependencies (high) | |
| if: matrix.dependencies == 'highest' | |
| run: | | |
| composer update --no-interaction --prefer-dist; | |
| composer show; | |
| - name: Install dependencies (latest) | |
| if: matrix.dependencies == 'latest' | |
| run: | | |
| composer config minimum-stability dev; | |
| composer update --no-interaction --prefer-dist; | |
| composer show; | |
| - name: Install dependencies (force latest) | |
| if: matrix.dependencies == 'force_latest' | |
| run: | | |
| composer config minimum-stability dev; | |
| composer update --no-interaction --prefer-dist --ignore-platform-reqs; | |
| composer show; | |
| - name: PHPUnit | |
| run: | | |
| if [ "${{ matrix.php-version }}" = "8.4" ] && [ "${{ matrix.dependencies }}" = "highest" ]; then | |
| php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --exclude-group=efficiency; | |
| else | |
| php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --exclude-group=efficiency --no-coverage; | |
| fi; | |
| - name: Behat | |
| run: | | |
| if [ "${{ matrix.php-version }}" = "8.4" ] && [ "${{ matrix.dependencies }}" = "highest" ]; then | |
| php -dmemory_limit=-1 vendor/behat/behat/bin/behat --strict; | |
| else | |
| php -dmemory_limit=-1 vendor/behat/behat/bin/behat --strict --no-coverage; | |
| fi; | |
| - name: Check code style | |
| if: matrix.php-version == '8.4' && matrix.dependencies == 'highest' | |
| run: vendor/bin/php-cs-fixer fix --verbose --dry-run --diff --allow-risky=yes --format=checkstyle | cs2pr | |
| speedrun: | |
| name: Speed run | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php-version: | |
| - "8.5" | |
| - "8.4" | |
| - "8.3" | |
| - "8.2" | |
| dependencies: | |
| - "highest" | |
| - "lowest" | |
| - "latest" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: "Setup PHP" | |
| uses: "shivammathur/setup-php@v2" | |
| with: | |
| php-version: ${{ matrix.php-version }} | |
| coverage: "none" | |
| ini-values: "opcache.enable=1, opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=128M, error_reporting=E_ALL, display_errors=On" | |
| env: | |
| COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Verify PHP version used | |
| run: | | |
| php -v && php -m; | |
| - name: Setup problem matchers for PHP | |
| run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" | |
| - name: Setup problem matchers for PHPUnit | |
| run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" | |
| - name: Validate composer.json | |
| run: composer validate | |
| - name: Get composer cache directory | |
| id: composercache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Set up build cache | |
| uses: "actions/cache@v4" | |
| with: | |
| path: | | |
| ${{ steps.composercache.outputs.dir }} | |
| "build/php-code-coverage-cache" | |
| ".php-cs-fixer.cache" | |
| key: php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-${{ github.ref }}-${{ github.sha }} | |
| restore-keys: | | |
| php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-${{ github.ref }} | |
| php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }} | |
| - name: Remove PHP-CS-Fixer | |
| run: composer remove --dev --no-update "friendsofphp/php-cs-fixer"; | |
| - name: Install dependencies (low) | |
| if: matrix.dependencies == 'lowest' | |
| run: | | |
| composer update --prefer-lowest --no-interaction --prefer-dist; | |
| composer show; | |
| - name: Install dependencies (high) | |
| if: matrix.dependencies == 'highest' | |
| run: | | |
| composer update --no-interaction --prefer-dist; | |
| composer show; | |
| - name: Install dependencies (latest) | |
| if: matrix.dependencies == 'latest' | |
| run: | | |
| composer config minimum-stability dev; | |
| composer update --no-interaction --prefer-dist; | |
| composer show; | |
| - name: Install dependencies (force latest) | |
| if: matrix.dependencies == 'force_latest' | |
| run: | | |
| composer config minimum-stability dev; | |
| composer update --no-interaction --prefer-dist --ignore-platform-reqs; | |
| composer show; | |
| - name: PHPUnit (no coverage) | |
| run: vendor/bin/phpunit --no-coverage; | |
| - name: Behat (no coverage) | |
| run: vendor/bin/behat --strict --no-coverage; |