diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index bce079cc..aa14250c 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -6,36 +6,7 @@ on: workflow_dispatch: jobs: - coding-standards: - name: Coding Standards - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.1 - tools: cs2pr - coverage: none - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --no-interaction --no-progress --prefer-dist - - - name: Validate composer.json - run: composer validate --strict - - - name: Run PHP_CodeSniffer - run: ./vendor/bin/phpcs -q --no-colors --report=checkstyle src tests | cs2pr + cs: + uses: ray-di/.github/.github/workflows/coding-standards.yml@v1 + with: + php_version: 8.1 diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 8b596656..0551e637 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -5,112 +5,10 @@ on: pull_request: workflow_dispatch: -env: - COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist" - COMPOSER_UPDATE_FLAGS: "" - jobs: - phpunit: - name: PHPUnit - runs-on: ubuntu-latest - continue-on-error: ${{ matrix.experimental }} - strategy: - matrix: - php-version: - - '7.2' - - '7.3' - - '7.4' - - '8.0' - - '8.1' - dependencies: [highest] - os: [ubuntu-latest] - experimental: [false] - include: - - php-version: "7.2" - dependencies: lowest - os: ubuntu-latest - experimental: false - - php-version: "7.3" - dependencies: lowest - os: ubuntu-latest - experimental: false - - php-version: "7.4" - dependencies: lowest - os: ubuntu-latest - experimental: false - - php-version: "8.0" - dependencies: lowest - os: ubuntu-latest - experimental: false - - php-version: "8.1" - dependencies: lowest - os: ubuntu-latest - experimental: false - - php-version: "8.1" - os: windows-latest - dependencies: highest - experimental: false - - php-version: "8.1" - os: macos-latest - dependencies: highest - experimental: false - - php-version: "8.2" - dependencies: lowest-ignore - os: ubuntu-latest - experimental: true - - php-version: "8.2" - dependencies: highest-ignore - os: ubuntu-latest - experimental: true - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP ${{ matrix.php-version }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - coverage: pcov - ini-values: zend.assertions=1 - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Handle lowest dependencies update - if: contains(matrix.dependencies, 'lowest') - run: echo COMPOSER_UPDATE_FLAGS=$COMPOSER_UPDATE_FLAGS --prefer-lowest >> $GITHUB_ENV - - - name: Handle ignore-platform-reqs dependencies update - if: contains(matrix.dependencies, 'ignore') - run: echo COMPOSER_FLAGS=$COMPOSER_FLAGS --ignore-platform-req=php >> $GITHUB_ENV - - - name: Remove platform config to get latest dependencies for current PHP version - if: contains(matrix.dependencies, 'highest') || contains(matrix.dependencies, 'lowest') - run: composer config platform --unset - - - name: Allow alpha releases for latest-deps builds to catch problems earlier - if: contains(matrix.dependencies, 'ignore') - run: composer config minimum-stability alpha - - - name: Update dependencies - run: composer update ${{ env.COMPOSER_UPDATE_FLAGS }} ${{ env.COMPOSER_FLAGS }} - - - name: Run test suite - run: ./vendor/bin/phpunit --coverage-clover=coverage.xml - - - name: Upload coverage report - uses: codecov/codecov-action@v2 - with: - file: ./coverage.xml - - - name: Run Demo - run: php demo/run.php + ci: + uses: ray-di/.github/.github/workflows/continuous-integration.yml@v1 + with: + old_stable: '["7.2", "7.3", "7.4", "8.0", "8.1"]' + current_stable: 8.2 + script: demo/run.php diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index ddaa71a9..ffaa511b 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -6,134 +6,7 @@ on: workflow_dispatch: jobs: - static-analysis-phpstan: - name: Static Analysis with PHPStan - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.1 - tools: cs2pr - coverage: none - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --no-interaction --no-progress --prefer-dist - - - name: Run PHPStan - run: ./vendor/bin/phpstan analyse -c phpstan.neon --no-progress --no-interaction --error-format=checkstyle | cs2pr - - static-analysis-psalm: - name: Static Analysis with Psalm - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.1 - tools: cs2pr - coverage: none - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Install dependencies - run: composer install --no-interaction --no-progress --prefer-dist - - - name: Run Psalm - run: ./vendor/bin/psalm --show-info=false --output-format=checkstyle --shepherd | cs2pr - - static-analysis-phpmd: - name: Static Analysis with PHPMD - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.1 - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --no-interaction --no-progress --prefer-dist - - - name: Run PHP Mess Detector - run: ./vendor/bin/phpmd src text ./phpmd.xml - - static-analysis-php-metrics: - name: Static Analysis with PhpMetrics - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.1 - coverage: none - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Install dependencies - run: composer install --no-interaction --no-progress --prefer-dist - - - name: Run PhpMetrics - run: ./vendor/bin/phpmetrics --exclude=Exception src - - static-analysis-composer-require-checker: - name: Static Analysis with ComposerRequireChecker - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.1 - coverage: none - - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Install dependencies - run: | - composer install --no-interaction --no-progress --prefer-dist - composer require --dev maglnet/composer-require-checker ^3.0 - - - name: Run composer-require-checker - run: ./vendor/bin/composer-require-checker check ./composer.json + sa: + uses: ray-di/.github/.github/workflows/static-analysis.yml@v1 + with: + php_version: 8.1