From 65160cda19bf5ae1052c8e613c8f82fd83608e1e Mon Sep 17 00:00:00 2001 From: Julian Hyatt <54834203+julianzimmermann@users.noreply.github.com> Date: Wed, 15 Jan 2025 10:11:40 +0100 Subject: [PATCH] Chore: php8.2, update ci stuff ... (#583) set php 8.2 as min requirement php-versions: ["8.2", "8.3", "8.4"] allow latest phpunit fix phpcs fix phpstan issues fix unit tests add missing ci pipelines add missing make files add missing phpstan files --- .github/workflows/main.yml | 35 +++++++++++++++++++ Makefile | 30 ++++++++++++++++ composer.json | 15 ++++---- phpstan.neon | 7 ++++ ...QuoteItemQuoteChangeObserverPluginTest.php | 7 ++-- .../Plugin/CheckAvailabilityPluginTest.php | 7 ++-- 6 files changed, 86 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/main.yml create mode 100644 Makefile create mode 100644 phpstan.neon diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..2cb9140 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,35 @@ +name: CI + +on: + push: + branches: [ main ] + +jobs: + continous-integration: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + php-versions: [ "8.2", "8.3", "8.4" ] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php + with: + php-version: ${{ matrix.php-versions }} + extensions: mbstring, dom, fileinfo, pgsql, json + coverage: xdebug #optional + - name: Get composer cache directory + id: composercache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Cache composer dependencies + uses: actions/cache@v3 + with: + path: ${{ steps.composercache.outputs.dir }} + # Use composer.json for key, if composer.lock is not committed. + # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies and run ci tasks + run: make install ci diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bee761c --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +.PHONY: install +install: + composer install + +.PHONY: phpcs +phpcs: + ./vendor/bin/phpcs --standard=./vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src/FondOfOryx/* ./tests/* + +.PHONY: phpcbf +phpcbf: + ./vendor/bin/phpcbf --standard=./vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src/FondOfOryx/* ./tests/* + +.PHONY: phpstan +phpstan: + ./vendor/bin/phpstan --memory-limit=-1 analyse ./src/FondOfOryx ./tests + +.PHONY: codeception +codeception: + ./vendor/bin/codecept run --env standalone --coverage --coverage-xml --coverage-html + +.PHONY: ci +ci: phpcs codeception phpstan + +.PHONY: clean +clean: + rm -Rf composer.lock + rm -Rf ./vendor + find ./tests/_output/ -not -name .gitignore -delete + rm -Rf src/Generated/* + rm -Rf src/Orm/* diff --git a/composer.json b/composer.json index 6eec025..bc15e31 100644 --- a/composer.json +++ b/composer.json @@ -4,19 +4,20 @@ "license": "MIT", "authors": [ { - "name": "Julian Haytt", - "email": "info@julianzimmermann.dev" + "name": "Julian Hyatt", + "email": "dev@jzit.de" } ], "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker/availability": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "spryker/availability-cart-connector": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "spryker/cart-extension": "^1.2.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" }, "require-dev": { - "fond-of-codeception/spryker": "^2.0.0", - "spryker/code-sniffer": "^0.12" + "fond-of-codeception/spryker": "*", + "spryker/code-sniffer": "*", + "spryker-sdk/phpstan-spryker": "*" }, "minimum-stability": "dev", "prefer-stable": true, @@ -28,11 +29,11 @@ "autoload-dev": { "psr-4": { "FondOfOryx\\": "tests/FondOfOryx/", - "Generated\\": "src/Generated/" + "Generated\\": "src/Generated/", + "Orm\\": "src/Orm/" } }, "config": { - "sort-packages": true, "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..e23f2d6 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,7 @@ +parameters: + level: 5 + reportUnmatchedIgnoredErrors: false + scanDirectories: + - src/Orm/Zed + ignoreErrors: + - '#.* on an unknown class Generated\\(Client|Glue|Service|Yves|Zed)\\Ide\\AutoCompletion.*#' diff --git a/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/AddAvailabilityDataToQuoteItemQuoteChangeObserverPluginTest.php b/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/AddAvailabilityDataToQuoteItemQuoteChangeObserverPluginTest.php index fb64f9e..2cf69df 100644 --- a/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/AddAvailabilityDataToQuoteItemQuoteChangeObserverPluginTest.php +++ b/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/AddAvailabilityDataToQuoteItemQuoteChangeObserverPluginTest.php @@ -4,7 +4,6 @@ use Codeception\Test\Unit; use FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacade; -use FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacadeInterface; use Generated\Shared\Transfer\QuoteTransfer; use Spryker\Zed\Kernel\Business\AbstractFacade; @@ -37,14 +36,14 @@ public function _before() $this->toTest = new class ($this->facadeMock) extends AddAvailabilityDataToQuoteItemQuoteChangeObserverPlugin { /** - * @var \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacadeInterface + * @var \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacade */ protected $facadeMock; /** - * @param \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacadeInterface $facadeMock + * @param \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacade $facadeMock */ - public function __construct(AvailabilityCartDataExtenderFacadeInterface $facadeMock) + public function __construct(AvailabilityCartDataExtenderFacade $facadeMock) { $this->facadeMock = $facadeMock; } diff --git a/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/CheckAvailabilityPluginTest.php b/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/CheckAvailabilityPluginTest.php index fa075fe..a6f8564 100644 --- a/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/CheckAvailabilityPluginTest.php +++ b/tests/FondOfOryx/Zed/AvailabilityCartDataExtender/Communication/Plugin/CheckAvailabilityPluginTest.php @@ -4,7 +4,6 @@ use Codeception\Test\Unit; use FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacade; -use FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacadeInterface; use Generated\Shared\Transfer\CartChangeTransfer; use Generated\Shared\Transfer\CartPreCheckResponseTransfer; use Spryker\Zed\Kernel\Business\AbstractFacade; @@ -44,14 +43,14 @@ public function _before() $this->toTest = new class ($this->facadeMock) extends CheckAvailabilityPlugin { /** - * @var \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacadeInterface + * @var \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacade */ protected $facadeMock; /** - * @param \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacadeInterface $facadeMock + * @param \FondOfOryx\Zed\AvailabilityCartDataExtender\Business\AvailabilityCartDataExtenderFacade $facadeMock */ - public function __construct(AvailabilityCartDataExtenderFacadeInterface $facadeMock) + public function __construct(AvailabilityCartDataExtenderFacade $facadeMock) { $this->facadeMock = $facadeMock; }