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 }}