chore(deps): update all non-major dependencies #624
This file contains 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
# https://docs.github.com/en/actions | |
name: "Integrate" | |
on: # yamllint disable-line rule:truthy | |
pull_request: null | |
push: | |
branches: | |
- "master" | |
jobs: | |
coding-standards: | |
name: "Coding Standards" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
dependencies: | |
- "locked" | |
steps: | |
- name: "Checkout" | |
uses: "actions/[email protected]" | |
- name: "Lint YAML files" | |
uses: "ibiqlik/[email protected]" | |
with: | |
config_file: ".yamllint.yaml" | |
file_or_dir: "." | |
strict: true | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/[email protected]" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Validate composer.json and composer.lock" | |
run: "composer validate --ansi --strict" | |
- name: "Install ${{ matrix.dependencies }} dependencies with composer" | |
uses: "ramsey/[email protected]" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Run ergebnis/composer-normalize" | |
run: "composer normalize --ansi --dry-run" | |
- name: "Create cache directory for squizlabs/php_codesniffer" | |
run: "mkdir -p .build/php_codesniffer" | |
- name: "Cache cache directory for squizlabs/php_codesniffer" | |
uses: "actions/cache@v4" | |
with: | |
path: ".build/php_codesniffer" | |
key: "php-${{ matrix.php-version }}-php_codesniffer-${{ github.sha }}" | |
restore-keys: "php-${{ matrix.php-version }}-php_codesniffer-" | |
- name: "Run squizlabs/php_codesniffer" | |
run: "vendor/bin/phpcs" | |
dependency-analysis: | |
name: "Dependency Analysis" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
dependencies: | |
- "locked" | |
steps: | |
- name: "Checkout" | |
uses: "actions/[email protected]" | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/[email protected]" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Install ${{ matrix.dependencies }} dependencies with composer" | |
uses: "ramsey/[email protected]" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Run maglnet/composer-require-checker" | |
run: "vendor/bin/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" | |
static-code-analysis: | |
name: "Static Code Analysis" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
dependencies: | |
- "locked" | |
steps: | |
- name: "Checkout" | |
uses: "actions/[email protected]" | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/[email protected]" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Install ${{ matrix.dependencies }} dependencies with composer" | |
uses: "ramsey/[email protected]" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Create cache directory for phpstan/phpstan" | |
run: "mkdir -p .build/phpstan" | |
- name: "Cache cache directory for phpstan/phpstan" | |
uses: "actions/cache@v4" | |
with: | |
path: ".build/phpstan" | |
key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" | |
restore-keys: "php-${{ matrix.php-version }}-phpstan-" | |
- name: "Run phpstan/phpstan" | |
run: "vendor/bin/phpstan analyse --configuration=phpstan.neon.dist --memory-limit=-1" | |
- name: "Create cache directory for vimeo/psalm" | |
run: "mkdir -p .build/psalm" | |
- name: "Cache cache directory for vimeo/psalm" | |
uses: "actions/cache@v4" | |
with: | |
path: ".build/psalm" | |
key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" | |
restore-keys: "php-${{ matrix.php-version }}-psalm-" | |
- name: "Run vimeo/psalm" | |
run: "vendor/bin/psalm --config=psalm.xml --output-format=github --shepherd --show-info=false --stats --threads=4" | |
tests: | |
name: "Tests" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.0" | |
- "8.1" | |
- "8.2" | |
dependencies: | |
- "lowest" | |
- "locked" | |
- "highest" | |
steps: | |
- name: "Checkout" | |
uses: "actions/[email protected]" | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/[email protected]" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Set up problem matchers for phpunit/phpunit" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" | |
- name: "Install ${{ matrix.dependencies }} dependencies with composer" | |
uses: "ramsey/[email protected]" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Run unit tests with phpunit/phpunit" | |
run: "vendor/bin/phpunit --colors=always --configuration=test/Unit/phpunit.xml.dist" | |
- name: "Run integration tests with phpunit/phpunit" | |
run: "vendor/bin/phpunit --colors=always --configuration=test/Integration/phpunit.xml.dist" | |
code-coverage: | |
name: "Code Coverage" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
dependencies: | |
- "locked" | |
steps: | |
- name: "Checkout" | |
uses: "actions/[email protected]" | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/[email protected]" | |
with: | |
coverage: "xdebug" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Set up problem matchers for phpunit/phpunit" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" | |
- name: "Install ${{ matrix.dependencies }} dependencies with composer" | |
uses: "ramsey/[email protected]" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Collect code coverage with Xdebug and phpunit/phpunit" | |
env: | |
XDEBUG_MODE: "coverage" | |
run: "vendor/bin/phpunit --colors=always --configuration=test/Unit/phpunit.xml.dist --coverage-clover=.build/phpunit/logs/clover.xml" | |
- name: "Send code coverage report to codecov.io" | |
uses: "codecov/codecov-action@v4-beta" | |
with: | |
files: ".build/phpunit/logs/clover.xml" | |
token: "${{ secrets.CODECOV_TOKEN }}" | |
mutation-tests: | |
name: "Mutation Tests" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
dependencies: | |
- "locked" | |
steps: | |
- name: "Checkout" | |
uses: "actions/[email protected]" | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/[email protected]" | |
with: | |
coverage: "xdebug" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Install ${{ matrix.dependencies }} dependencies with composer" | |
uses: "ramsey/[email protected]" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Run mutation tests with Xdebug and infection/infection" | |
run: "vendor/bin/infection --configuration=infection.json.dist --logger-github" | |
env: | |
STRYKER_DASHBOARD_API_KEY: "${{ secrets.STRYKER_DASHBOARD_API_KEY }}" | |
XDEBUG_MODE: "coverage" |