# https://help.github.com/en/categories/automating-your-workflow-with-github-actions on: - "pull_request" - "push" name: "CI" permissions: contents: read jobs: coding-guidelines: name: Coding Guidelines runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.1 coverage: none - name: Run friendsofphp/php-cs-fixer run: ./tools/php-cs-fixer fix --dry-run --show-progress=dots --using-cache=no --verbose type-checker: name: Type Checker runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.1 coverage: none - name: Update dependencies with composer run: ./tools/composer update --no-interaction --no-ansi --no-progress - name: Run vimeo/psalm run: ./tools/psalm --config=.psalm/config.xml --no-progress --shepherd --show-info=false --stats tests: name: Tests runs-on: ubuntu-latest strategy: fail-fast: false matrix: php-version: - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" steps: - name: "Checkout" uses: "actions/checkout@v3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" with: php-version: "${{ matrix.php-version }}" coverage: "pcov" - name: "Cache dependencies installed with composer" uses: "actions/cache@v2" with: path: "~/.composer/cache" key: "php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }}" restore-keys: "php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install dependencies with composer" run: "./tools/composer update --no-ansi --no-interaction --no-progress" - name: "Run tests with phpunit/phpunit" run: "vendor/bin/phpunit --coverage-clover=coverage.xml" - name: "Send code coverage report to Codecov.io" env: CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" run: "bash <(curl -s https://codecov.io/bash) || true"