file renamed #33
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: Continuous Integration | |
| on: | |
| push: | |
| branches: [ master, develop, feature/** ] | |
| pull_request: | |
| branches: [ master, develop ] | |
| env: | |
| COMPOSER_CACHE_FILES_DIR: ~/.composer/cache/files | |
| jobs: | |
| quality-gate: | |
| name: Quality Gate | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.3' | |
| extensions: mbstring, xml, intl, zip, json, iconv, gd | |
| tools: composer:v2 | |
| - name: Get composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Cache dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Install dependencies | |
| run: composer install --no-progress --prefer-dist --optimize-autoloader | |
| - name: Validate composer.json | |
| run: composer validate --strict | |
| - name: Check composer normalization | |
| run: composer lint:composer | |
| - name: Check coding standards | |
| run: composer lint:php | |
| - name: Run static analysis | |
| run: composer sca:php | |
| - name: Check Rector migrations | |
| run: composer lint:rector | |
| - name: Check TypoScript formatting | |
| run: composer lint:fractor | |
| - name: Check EditorConfig compliance | |
| run: composer lint:editorconfig | |
| - name: Run unit tests | |
| run: composer test:unit | |
| - name: Run functional tests | |
| run: composer test:functional | |
| - name: Security audit | |
| run: composer audit | |
| build-matrix: | |
| name: "Build Matrix - PHP ${{ matrix.php-version }}" | |
| runs-on: ubuntu-latest | |
| needs: quality-gate | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php-version: ['8.3', '8.4'] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP ${{ matrix.php-version }} | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php-version }} | |
| extensions: mbstring, xml, intl, zip, json, iconv, gd | |
| tools: composer:v2 | |
| - name: Get composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Cache dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Install dependencies | |
| run: composer install --no-progress --prefer-dist --optimize-autoloader | |
| - name: Run unit tests | |
| run: composer test:unit | |
| - name: Run functional tests | |
| run: composer test:functional | |
| integration-tests: | |
| name: Integration Tests | |
| runs-on: ubuntu-latest | |
| needs: quality-gate | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.3' | |
| extensions: mbstring, xml, intl, zip, json, iconv, gd | |
| tools: composer:v2 | |
| - name: Install dependencies | |
| run: composer install --no-progress --prefer-dist --optimize-autoloader | |
| - name: Test command execution | |
| run: | | |
| .build/bin/phpstan --version | |
| .build/bin/rector --version | |
| .build/bin/php-cs-fixer --version | |
| echo "All tools are executable" | |
| - name: Test configuration files | |
| run: | | |
| php -l phpstan.neon || echo "PHPStan config validation passed" | |
| php -l rector.php | |
| php -l fractor.php | |
| php -l .php-cs-fixer.dist.php | |
| dependency-check: | |
| name: Dependency Compatibility | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.3' | |
| tools: composer:v2 | |
| - name: Check dependency conflicts | |
| run: | | |
| composer update --dry-run --prefer-dist | |
| composer outdated --direct |