Skip to content

Commit

Permalink
feat: GitHub actions (#8)
Browse files Browse the repository at this point in the history
* Use github actions instead of travis
- remove unused dependencies
- fix phpstan issues
- add phpcs fixes
- remove travis file
- add github workflow ...
- ...

* Add phpcs fixes

---------

Co-authored-by: Daniel Rose <[email protected]>
  • Loading branch information
sourcecube and daniel-rose authored Aug 12, 2024
1 parent e82909e commit de9af66
Show file tree
Hide file tree
Showing 26 changed files with 210 additions and 109 deletions.
3 changes: 0 additions & 3 deletions .coveralls.yml

This file was deleted.

32 changes: 32 additions & 0 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: PHP Composer

on:
push:
branches: [ master, spryker_upgrade ]
pull_request:
types: [ assigned, opened, synchronize, reopened ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Validate composer.json and composer.lock
run: composer validate
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress --no-suggest
- name: Run test suite
env:
XDEBUG_MODE: coverage
run: composer run-script ci
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,8 @@

.DS_Store

src/Generated
src/Orm

vendor
composer.lock
composer.lock
22 changes: 0 additions & 22 deletions .travis.yml

This file was deleted.

30 changes: 30 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.PHONY: update
update:
composer update

.PHONY: install
install:
composer install --no-dev

.PHONY: install-dev
install-dev:
composer install

.PHONY: phpcs
phpcs:
./vendor/bin/phpcs --standard=./vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src/FondOfSpryker/ ./tests/FondOfSpryker/

.PHONY: phpcbf
phpcbf:
./vendor/bin/phpcbf --standard=./vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src/FondOfSpryker/ ./tests/FondOfSpryker/

.PHONY: phpstan
phpstan:
php -d memory_limit=-1 ./vendor/bin/phpstan analyse -l 4 ./src/FondOfSpryker

.PHONY: codeception
codeception:
./vendor/bin/codecept run --env standalone --coverage --coverage-xml --coverage-html

.PHONY: ci
ci: install-dev phpcs codeception phpstan
23 changes: 21 additions & 2 deletions codeception.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
namespace: FondOfSpryker
namespace: fond-of-spryker/product

suites:
unit:
path: .
Expand All @@ -17,4 +18,22 @@ paths:
coverage:
enabled: true
include:
- src/*.php
- src/FondOfSpryker/*.php

modules:
enabled:
- \FondOfCodeception\Module\Spryker
config:
\FondOfCodeception\Module\Spryker:
generate_transfer: false
generate_map_classes: false
generate_propel_classes: false

env:
standalone:
modules:
config:
\FondOfCodeception\Module\Spryker:
generate_transfer: true
generate_map_classes: true
generate_propel_classes: true
23 changes: 16 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,20 @@
"email": "[email protected]"
}
],
"scripts": {
"ci": "make ci",
"codeception": "make codeception",
"phpcs": "make phpcs",
"phpstan": "make phpstan"
},
"require": {
"php": ">=7.4",
"spryker/product": "^6.29.0"
},
"require-dev": {
"spryker/code-sniffer": "^0.14.7",
"spryker/development": "^3.22",
"codeception/codeception": "^2.5",
"mikey179/vfsstream": "^1.6",
"phpro/grumphp": "^0.14",
"sebastian/phpcpd": "^4.1"
"fond-of-codeception/spryker": "^1.0",
"spryker/code-sniffer": "*",
"spryker-sdk/phpstan-spryker": "*"
},
"minimum-stability": "dev",
"prefer-stable": true,
Expand All @@ -42,7 +45,13 @@
"autoload-dev": {
"psr-4": {
"FondOfSpryker\\": "tests/FondOfSpryker/",
"Generated\\": "tests/Generated/"
"Generated\\": "src/Generated/",
"Orm\\Zed\\": "src/Orm/Zed/"
}
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}
4 changes: 0 additions & 4 deletions grumphp.yml

This file was deleted.

10 changes: 10 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@


parameters:
level: 4
reportUnmatchedIgnoredErrors: false
scanDirectories:
- src/Orm/Zed
- src/Generated
ignoreErrors:
- '#.* on an unknown class Generated\\(Client|Glue|Service|Yves|Zed)\\Ide\\AutoCompletion.*#'
6 changes: 6 additions & 0 deletions src/FondOfSpryker/Shared/Product/ProductConstants.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@

interface ProductConstants
{
/**
* @var string
*/
public const URL_ATTRIBUTE_CODE = 'PRODUCT:URL_ATTRIBUTE_CODE';

/**
* @var string
*/
public const URL_LOCALE_TO_SKIP = 'PRODUCT:URL_LOCALE_TO_SKIP';
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
use Spryker\Zed\Product\Business\ProductBusinessFactory as BaseProductBusinessFactory;

/**
* @method \FondOfSpryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Persistence\ProductEntityManagerInterface getEntityManager()
* @method \Spryker\Zed\Product\Persistence\ProductQueryContainerInterface getQueryContainer()
* @method \Spryker\Zed\Product\Persistence\ProductRepositoryInterface getRepository()
*/
class ProductBusinessFactory extends BaseProductBusinessFactory
{
Expand All @@ -23,7 +26,7 @@ public function createProductUrlGenerator(): ProductUrlGeneratorInterface
$this->createProductAbstractNameGenerator(),
$this->getLocaleFacade(),
$this->getUtilTextService(),
$this->getConfig()
$this->getConfig(),
);
}

Expand Down
9 changes: 7 additions & 2 deletions src/FondOfSpryker/Zed/Product/Business/ProductFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
use Spryker\Zed\Product\Business\ProductFacade as BaseProductFacade;

/**
* @method \FondOfSpryker\Zed\Product\Business\ProductBusinessFactory getFactory()
* @method \Spryker\Zed\Product\Business\ProductBusinessFactory getFactory()
* @method \Spryker\Zed\Product\Persistence\ProductEntityManagerInterface getEntityManager()
* @method \Spryker\Zed\Product\Persistence\ProductRepositoryInterface getRepository()
*/
class ProductFacade extends BaseProductFacade implements ProductFacadeInterface
{
Expand Down Expand Up @@ -54,6 +56,9 @@ public function updateProductAbstractUrl(ProductAbstractTransfer $productAbstrac
*/
public function canPersistProductAbstractUrl(ProductAbstractTransfer $productAbstractTransfer): bool
{
return $this->getFactory()->createProductUrlManager()->canPersistProductUrl($productAbstractTransfer);
/** @var \FondOfSpryker\Zed\Product\Business\ProductUrlManagerInterface $productUrlManager */
$productUrlManager = $this->getFactory()->createProductUrlManager();

return $productUrlManager->canPersistProductUrl($productAbstractTransfer);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace FondOfSpryker\Zed\Product\Business;

use FondOfSpryker\Zed\Product\Dependency\Facade\ProductToStoreInterface;
use FondOfSpryker\Zed\Product\ProductConfig;
use Generated\Shared\Transfer\LocaleTransfer;
use Generated\Shared\Transfer\ProductAbstractTransfer;
Expand Down Expand Up @@ -34,7 +33,6 @@ public function __construct(
ProductToUtilTextInterface $utilTextService,
ProductConfig $config
) {

parent::__construct($productAbstractNameGenerator, $localeFacade, $utilTextService);

$this->config = $config;
Expand Down
5 changes: 4 additions & 1 deletion src/FondOfSpryker/Zed/Product/Business/ProductUrlManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ class ProductUrlManager extends SprykerProductUrlMananger implements ProductUrlM
*/
public function canPersistProductUrl(ProductAbstractTransfer $productAbstractTransfer): bool
{
/** @var \FondOfSpryker\Zed\Product\Dependency\Facade\ProductToUrlBridge $urlFacade */
$urlFacade = $this->urlFacade;

$productUrl = $this->urlGenerator->generateProductUrl($productAbstractTransfer);

foreach ($productUrl->getUrls() as $urlTransfer) {
$newUrlTransfer = new UrlTransfer();
$newUrlTransfer->setUrl($urlTransfer->getUrl());

$existingUrlTransfer = $this->urlFacade->findUrl($newUrlTransfer);
$existingUrlTransfer = $urlFacade->findUrl($newUrlTransfer);

if ($existingUrlTransfer === null) {
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
use Spryker\Zed\Product\Dependency\Plugin\ProductAbstractPluginCreateInterface;

/**
* @method \FondOfSpryker\Zed\Product\Business\ProductFacadInterface getFacade()
* @method \FondOfSpryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \Spryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Persistence\ProductQueryContainerInterface getQueryContainer()
* @method \Spryker\Zed\Product\Communication\ProductCommunicationFactory getFactory()
*/
class UrlProductAbstractAfterCreatePlugin extends AbstractPlugin implements ProductAbstractPluginCreateInterface
{
Expand All @@ -19,7 +21,10 @@ class UrlProductAbstractAfterCreatePlugin extends AbstractPlugin implements Prod
*/
public function create(ProductAbstractTransfer $productAbstractTransfer): ProductAbstractTransfer
{
$this->getFacade()->createProductAbstractUrl($productAbstractTransfer);
/** @var \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface $facade */
$facade = $this->getFacade();

$facade->createProductAbstractUrl($productAbstractTransfer);

return $productAbstractTransfer;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
use Spryker\Zed\Product\Dependency\Plugin\ProductAbstractPluginUpdateInterface;

/**
* @method \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \FondOfSpryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \Spryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Persistence\ProductQueryContainerInterface getQueryContainer()
* @method \Spryker\Zed\Product\Communication\ProductCommunicationFactory getFactory()
*/
class UrlProductAbstractAfterUpdatePlugin extends AbstractPlugin implements ProductAbstractPluginUpdateInterface
{
Expand All @@ -19,7 +21,10 @@ class UrlProductAbstractAfterUpdatePlugin extends AbstractPlugin implements Prod
*/
public function update(ProductAbstractTransfer $productAbstractTransfer): ProductAbstractTransfer
{
$this->getFacade()->updateProductAbstractUrl($productAbstractTransfer);
/** @var \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface $facade */
$facade = $this->getFacade();

$facade->updateProductAbstractUrl($productAbstractTransfer);

return $productAbstractTransfer;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
use Spryker\Zed\Product\Dependency\Plugin\ProductAbstractPluginCreateInterface;

/**
* @method \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \FondOfSpryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \Spryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Persistence\ProductQueryContainerInterface getQueryContainer()
* @method \Spryker\Zed\Product\Communication\ProductCommunicationFactory getFactory()
*/
class UrlProductAbstractBeforeCreatePlugin extends AbstractPlugin implements ProductAbstractPluginCreateInterface
{
Expand All @@ -22,7 +24,10 @@ class UrlProductAbstractBeforeCreatePlugin extends AbstractPlugin implements Pro
*/
public function create(ProductAbstractTransfer $productAbstractTransfer): ProductAbstractTransfer
{
if (!$this->getFacade()->canPersistProductAbstractUrl($productAbstractTransfer)) {
/** @var \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface $facade */
$facade = $this->getFacade();

if (!$facade->canPersistProductAbstractUrl($productAbstractTransfer)) {
throw new DuplicateUrlKeyException('Url key already exists!');
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
use Spryker\Zed\Product\Dependency\Plugin\ProductAbstractPluginUpdateInterface;

/**
* @method \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \FondOfSpryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Business\ProductFacadeInterface getFacade()
* @method \Spryker\Zed\Product\ProductConfig getConfig()
* @method \Spryker\Zed\Product\Persistence\ProductQueryContainerInterface getQueryContainer()
* @method \Spryker\Zed\Product\Communication\ProductCommunicationFactory getFactory()
*/
class UrlProductAbstractBeforeUpdatePlugin extends AbstractPlugin implements ProductAbstractPluginUpdateInterface
{
Expand All @@ -22,7 +24,10 @@ class UrlProductAbstractBeforeUpdatePlugin extends AbstractPlugin implements Pro
*/
public function update(ProductAbstractTransfer $productAbstractTransfer): ProductAbstractTransfer
{
if (!$this->getFacade()->canPersistProductAbstractUrl($productAbstractTransfer)) {
/** @var \FondOfSpryker\Zed\Product\Business\ProductFacadeInterface $facade */
$facade = $this->getFacade();

if (!$facade->canPersistProductAbstractUrl($productAbstractTransfer)) {
throw new DuplicateUrlKeyException('Url key already exists!');
}

Expand Down
Loading

0 comments on commit de9af66

Please sign in to comment.