Skip to content

Static and Unit tests #178

Static and Unit tests

Static and Unit tests #178

name: Static and Unit tests
on:
push:
branches:
- main
paths-ignore:
- '**.md'
schedule:
- cron: '25 08 * * *'
workflow_dispatch:
permissions:
contents: read
env:
# Allow ddev get to use a GitHub token to prevent rate limiting by tests
DDEV_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
static-and-unit-test-suite:
strategy:
fail-fast: false
matrix:
# First and last patch for the current and previous minor, greatest php version
include:
- m2-version: '2.3.0'
php-version: '7.2'
magento-repository: 'https://repo.magento.com/'
- m2-version: '2.3.7'
php-version: '7.4'
magento-repository: 'https://repo.magento.com/'
- m2-version: '2.4.0'
php-version: '7.4'
magento-repository: 'https://repo.magento.com/'
- m2-version: '2.4.6'
php-version: '8.2'
magento-repository: 'https://repo.magento.com/'
name: Static and unit test suite
runs-on: ubuntu-latest
env:
EXTENSION_PACKAGE_NAME: "okaeli/magento2-category-code"
EXTENSION_NAME: "Okaeli_CategoryCode"
EXTENSION_PATH: "okaeli-category-code"
EXTENSION_GITHUB_URL: "julienloizelet/magento2-category-code"
EXTENSION_REF: "v1.1.12"
steps:
- name: Clone current repository
uses: actions/checkout@v3
- name: Install Magento with DDEV
uses: ./
with:
php_version: ${{ matrix.php-version }}
magento_version: ${{ matrix.m2-version }}
composer_auth: ${{ secrets.M2_COMPOSER_AUTH }}
magento_repository: ${{ matrix.magento-repository }}
- name: Clone ${{ env.EXTENSION_NAME }} module files
uses: actions/checkout@v3
with:
path: my-own-modules/${{ env.EXTENSION_PATH }}
repository: ${{ env.EXTENSION_GITHUB_URL }}
ref: ${{ env.EXTENSION_REF }}
- name: Prepare composer repositories
run: |
ddev composer config --unset repositories.0
ddev composer config repositories.0 '{"type": "path", "url":"my-own-modules/${{ env.EXTENSION_PATH }}/", "canonical": true, "options": {"symlink": false}}'
ddev composer config repositories.1 '{"type": "composer", "url":"${{ matrix.magento-repository }}", "exclude": ["${{ env.EXTENSION_PACKAGE_NAME }}"]}'
- name: Add ${{ env.EXTENSION_NAME }} as composer dependency
run: ddev composer require ${{ env.EXTENSION_PACKAGE_NAME }}:@dev --no-interaction
- name: Add Coding Standard and PHPStan for Magento 2.3
if: contains(fromJson('["2.3.0"]'),matrix.m2-version)
run: |
ddev composer require squizlabs/php_codesniffer:^3.4 magento/magento-coding-standard
ddev exec vendor/bin/phpcs --config-set installed_paths ../../magento/magento-coding-standard/
ddev composer require --dev phpstan/phpstan:0.12.23 bitexpert/phpstan-magento:v0.10.0
mkdir dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan
cp .ddev/okaeli-add-on/magento2/custom_files/phpstan.neon dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan/phpstan.neon
- name: PHP CODE SNIFFER
run: |
ddev phpcs vendor/${{ env.EXTENSION_PACKAGE_NAME }}
- name: PHP MESS DETECTOR
run: ddev phpmd vendor/${{ env.EXTENSION_PACKAGE_NAME }}
env:
CONTINUE_ON_ERROR: ${{ startsWith(matrix.m2-version, '2.3') }}
continue-on-error: ${{ env.CONTINUE_ON_ERROR == 'true'}}
- name: PHPSTAN
run: |
ddev exec cat dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan/phpstan.neon
ddev phpstan vendor/${{ env.EXTENSION_PACKAGE_NAME }} --debug
- name: Fix Unit Test for Magento 2.4.6
# @see https://github.com/magento/magento2/issues/36702
if: contains(fromJson('["2.4.6"]'),matrix.m2-version)
run: sed -i 's/allure\/allure.config.php/dev\/tests\/unit\/allure\/allure.config.php/g' dev/tests/unit/phpunit.xml.dist
- name: PHP UNIT
run: |
ddev phpunit vendor/${{ env.EXTENSION_PACKAGE_NAME }}/Test/Unit