Merge pull request #35620 from Progi1984/test8648 #1165
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 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 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 install --ansi --prefer-dist --no-interaction --no-progress | |
- name: Update phpunit version | |
if: ${{ startsWith(matrix.php, '8.') }} | |
run: 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 |