Merge pull request #37196 from PrestaShop/dependabot/npm_and_yarn/tes… #183
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
name: PHP | |
on: | |
push: | |
pull_request: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
php-cs-fixer: | |
permissions: | |
contents: read # for actions/checkout to fetch code | |
name: PHP CS Fixer | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.1 | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Validate composer config | |
run: composer validate --strict | |
- name: Composer Install | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
- name: Run PHPCSFixer | |
run: ./vendor/bin/php-cs-fixer fix --dry-run --diff | |
- name: Run ergebnis/composer-normalize | |
run: composer normalize --dry-run --no-check-lock | |
phpstan: | |
permissions: | |
contents: read # for actions/checkout to fetch code | |
name: PHP Static Analysis | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php: [ '8.1', '8.2', '8.3' ] | |
fail-fast: false | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' # will be overriden by platform.php in composer.json see https://phpstan.org/config-reference#phpversion | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml | |
coverage: none # disable coverage to disable xdebug in the action. | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Composer Install | |
run: | | |
COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
rm composer.lock | |
composer config platform.php ${{ matrix.php }} | |
- name: Run phpstan | |
run: ./vendor/bin/phpstan analyse -c phpstan.neon.dist | |
phpunit: | |
permissions: | |
contents: read # for actions/checkout to fetch code | |
name: PHPUnit | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php: [ '8.1', '8.2', '8.3' ] | |
fail-fast: false | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: PrestaShop Configuration | |
run: cp .github/workflows/phpunit/parameters.yml app/config/parameters.yml | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer Directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Composer Install | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer install --ansi --prefer-dist --no-interaction --no-progress | |
- name: Update phpunit version | |
if: ${{ startsWith(matrix.php, '8.') }} | |
run: COMPOSER_PROCESS_TIMEOUT=600 composer update -w --ignore-platform-reqs --no-interaction phpunit/phpunit | |
- name: Run phpunit | |
run: ./vendor/phpunit/phpunit/phpunit -c tests/Unit/phpunit.xml | |
env: | |
SYMFONY_DEPRECATIONS_HELPER: disabled | |
- name: Test git versionned files unchanged | |
if: ${{ !startsWith(matrix.php, '8.') }} # composer.lock changes when updating phpunit version | |
run: git diff --exit-code |