90 lines
2.5 KiB
YAML
90 lines
2.5 KiB
YAML
name: PHP tests
|
|
on: [push, pull_request]
|
|
jobs:
|
|
# Check there is no syntax errors in the project
|
|
php-linter:
|
|
name: PHP Syntax check 5.6 => 8.1
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3.1.0
|
|
|
|
- name: PHP syntax checker 5.6
|
|
uses: prestashop/github-action-php-lint/5.6@master
|
|
|
|
- name: PHP syntax checker 7.2
|
|
uses: prestashop/github-action-php-lint/7.2@master
|
|
|
|
- name: PHP syntax checker 7.3
|
|
uses: prestashop/github-action-php-lint/7.3@master
|
|
|
|
- name: PHP syntax checker 7.4
|
|
uses: prestashop/github-action-php-lint/7.4@master
|
|
|
|
- name: PHP syntax checker 8.0
|
|
uses: prestashop/github-action-php-lint/8.0@master
|
|
|
|
- name: PHP syntax checker 8.1
|
|
uses: prestashop/github-action-php-lint/8.1@master
|
|
|
|
# Check the PHP code follow the coding standards
|
|
php-cs-fixer:
|
|
name: PHP-CS-Fixer
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '7.4'
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v3.1.0
|
|
|
|
- name: Cache dependencies
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: vendor
|
|
key: php-${{ hashFiles('composer.lock') }}
|
|
|
|
- name: Install dependencies
|
|
run: composer install
|
|
|
|
- name: Run PHP-CS-Fixer
|
|
run: ./vendor/bin/php-cs-fixer fix --dry-run --diff --using-cache=no
|
|
|
|
# Run PHPStan against the module and a PrestaShop release
|
|
phpstan:
|
|
name: PHPStan
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
presta-versions: ['1.7.1.2', '1.7.2.5', '1.7.3.4', '1.7.4.4', '1.7.5.1', '1.7.6', '1.7.7', '1.7.8', 'latest']
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '7.4'
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v3.1.0
|
|
|
|
# Add vendor folder in cache to make next builds faster
|
|
- name: Cache vendor folder
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: vendor
|
|
key: php-${{ hashFiles('composer.lock') }}
|
|
|
|
# Add composer local folder in cache to make next builds faster
|
|
- name: Cache composer folder
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ~/.composer/cache
|
|
key: php-composer-cache
|
|
|
|
- run: composer install
|
|
|
|
# Docker images prestashop/prestashop may be used, even if the shop remains uninstalled
|
|
- name: Execute PHPStan on PrestaShop (Tag ${{ matrix.presta-versions }})
|
|
run: ./tests/phpstan.sh ${{ matrix.presta-versions }}
|