drop PHP 8.1 and below, add PHP 8.5 support, allow Tagging 9 #763
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: PHP CI | |
| on: [push] | |
| jobs: | |
| phpcs: | |
| name: Code Sniffer | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| ############################################################################ | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.2' | |
| tools: composer:v2 | |
| extensions: ast, bcmath, gd | |
| coverage: none | |
| #https://github.com/actions/cache/blob/master/examples.md#php---composer | |
| - name: Cache composer packages | |
| id: composer-cache | |
| run: | | |
| composer config cache-files-dir | |
| echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-composer- | |
| - name: Update project dependencies | |
| env: | |
| REPO_USR: ${{ secrets.REPO_USR }} | |
| REPO_PSW: ${{ secrets.REPO_PSW }} | |
| run: | | |
| composer config repositories.0 composer https://repo.magento.com | |
| composer config http-basic.repo.magento.com "$REPO_USR" "$REPO_PSW" | |
| composer install --prefer-dist --no-progress | |
| ############################################################################ | |
| - name: Run the sniffer | |
| run: | | |
| ./vendor/bin/phpcs --config-set ignore_errors_on_exit 1 | |
| ./vendor/bin/phpcs --config-set ignore_warnings_on_exit 1 | |
| ./vendor/bin/phpcs --standard=ruleset.xml --report=checkstyle --report-file=chkphpcs.xml | |
| - name: Archive code sniffing results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: phpcs-xml-result | |
| path: chkphpcs.xml | |
| - name: Report annotations | |
| id: report-annotations | |
| run: ./vendor/bin/cs2pr --graceful-warnings chkphpcs.xml | |
| phpmd: | |
| name: Mess Detect | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| ############################################################################ | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.2' | |
| tools: composer:v2 | |
| extensions: ast, bcmath, gd | |
| coverage: none | |
| #https://github.com/actions/cache/blob/master/examples.md#php---composer | |
| - name: Cache composer packages | |
| id: composer-cache | |
| run: | | |
| composer config cache-files-dir | |
| echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-composer- | |
| - name: Update project dependencies | |
| env: | |
| REPO_USR: ${{ secrets.REPO_USR }} | |
| REPO_PSW: ${{ secrets.REPO_PSW }} | |
| run: | | |
| composer config repositories.0 composer https://repo.magento.com | |
| composer config http-basic.repo.magento.com "$REPO_USR" "$REPO_PSW" | |
| composer install --prefer-dist --no-progress | |
| ############################################################################ | |
| - name: Run the mess detector | |
| run: ./vendor/bin/phpmd . xml codesize,naming,unusedcode,controversial,design --exclude vendor,var,build,tests --reportfile pmdphpmd.xml --ignore-violations-on-exit | |
| - name: Archive mess detection results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: phpmd-xml-result | |
| path: pmdphpmd.xml | |
| - name: Report annotations | |
| id: report-annotations | |
| run: ./vendor/bin/pmd2pr --graceful-warnings pmdphpmd.xml | |
| package: | |
| name: Package | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| ############################################################################ | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.2' | |
| tools: composer:v2.1.14, pecl | |
| extensions: ast, bcmath, gd | |
| coverage: none | |
| #https://github.com/actions/cache/blob/master/examples.md#php---composer | |
| - name: Cache composer packages | |
| id: composer-cache | |
| run: | | |
| echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-composer- | |
| - name: Update project dependencies | |
| env: | |
| REPO_USR: ${{ secrets.REPO_USR }} | |
| REPO_PSW: ${{ secrets.REPO_PSW }} | |
| run: | | |
| composer config repositories.0 composer https://repo.magento.com | |
| composer config http-basic.repo.magento.com "$REPO_USR" "$REPO_PSW" | |
| composer require --no-update nosto/module-nostotagging:@stable | |
| composer require --no-update nosto/module-nosto-msi:@stable | |
| composer require --no-update nosto/module-nosto-itp:@stable | |
| composer install --prefer-dist --no-progress | |
| ############################################################################ | |
| - name: Build archive using composer | |
| run: composer archive --format=zip --file=archive | |
| - name: Archive built arhive | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: composer-zip-archive | |
| path: archive.zip | |
| # Magento 2.4.8 pins php to ~8.2.0||~8.3.0||~8.4.0, so a normal install cannot | |
| # run on 8.5 yet. This lane installs with the platform requirement ignored and | |
| # only runs PHPCompatibility, which parses source and never executes Magento, | |
| # so the module stays verified 8.5-clean ahead of Magento allowing 8.5. | |
| php-compat: | |
| name: PHP 8.2-8.5 Compatibility | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.5' | |
| tools: composer:v2 | |
| coverage: none | |
| - name: Cache composer packages | |
| id: composer-cache | |
| run: | | |
| composer config cache-files-dir | |
| echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-phpcompat-${{ hashFiles('**/composer.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-composer-phpcompat- | |
| - name: Install dependencies | |
| env: | |
| REPO_USR: ${{ secrets.REPO_USR }} | |
| REPO_PSW: ${{ secrets.REPO_PSW }} | |
| run: | | |
| composer config http-basic.repo.magento.com "$REPO_USR" "$REPO_PSW" | |
| composer install --prefer-dist --no-progress --ignore-platform-req=php | |
| - name: Lint every source file under PHP 8.5 | |
| run: | | |
| find . -path ./vendor -prune -o \( -name '*.php' -o -name '*.phtml' \) -print0 \ | |
| | xargs -0 -n1 -P4 php -l > /dev/null | |
| - name: Run the compatibility sniffs | |
| run: | | |
| ./vendor/bin/phpcs --standard=ruleset-phpcompat.xml \ | |
| --report=checkstyle --report-file=chkphpcompat.xml || true | |
| ./vendor/bin/phpcs --standard=ruleset-phpcompat.xml --report=full | |
| - name: Report annotations | |
| if: always() && hashFiles('chkphpcompat.xml') != '' | |
| run: ./vendor/bin/cs2pr chkphpcompat.xml |