Static and Unit tests #915
  
    
      This file contains hidden or 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: 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 latest patch (only with composer 2) for the current and previous minor, greatest php version | |
| include: | |
| - m2-version: '2.3.7' | |
| php-version: '7.4' | |
| magento-repository: 'https://repo.magento.com/' | |
| - m2-version: '2.4.2' | |
| php-version: '7.4' | |
| magento-repository: 'https://repo.magento.com/' | |
| - m2-version: '2.4.8' | |
| php-version: '8.4' | |
| 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@v4 | |
| - 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@v4 | |
| 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 exec --raw composer config repositories.0 '{"type": "path", "url":"my-own-modules/${{ env.EXTENSION_PATH }}/", "canonical": true, "options": {"symlink": false}}' | |
| ddev exec --raw 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.8 | |
| # @see https://github.com/magento/magento2/issues/36702 | |
| if: contains(fromJson('["2.4.8"]'),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 | |
| workflow-keepalive: | |
| name: Keepalive workflow | |
| if: github.event_name == 'schedule' | |
| uses: "./.github/workflows/keepalive.yml" | |
| permissions: | |
| actions: write |