-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OP-377 - Add support for Sylius 1.12 and 1.13 #31
Merged
Changes from 19 commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
d05beb7
OP-377 - Add support for Sylius 1.12 and Sylius 1.13
SzymonKostrubiec 1398815
OP-377 - Change PHPUnit version from 10.5 to 9.5
SzymonKostrubiec 812d79f
OP-377 - Add bin directory with create symlink file, update dependencies
SzymonKostrubiec ebaf6f2
OP-377 - Apply PHPStan fixes
SzymonKostrubiec 4f5bd4f
OP-377 - Apply ECS Fixes
SzymonKostrubiec 443f722
OP-377 - Add fix for PHPSpec, PHPStan and run ECS
SzymonKostrubiec cf2ce1c
OP-377 - Add phpunit configuration and add fix for PHPStan builds
SzymonKostrubiec 08fa0e0
OP-377 - Add fix for behat tests
SzymonKostrubiec cd9f487
OP-377 - Restore dropped files
SzymonKostrubiec 54d9486
OP-377 - Update behat config and dependencies
SzymonKostrubiec 71a42da
OP-377 - Apply ECS fixes, update ECS config and update dependencies
SzymonKostrubiec 8a28f9c
OP-377 - Add messenger transport dsn virable to env, update ECS config
SzymonKostrubiec c45bb6c
OP-377 - Update dependencies, fix autload
SzymonKostrubiec 4dc5776
OP-377 - Update codingstandard file - ecs
SzymonKostrubiec dc15a19
OP-377 - Update ecs configuration file and ECS builds
SzymonKostrubiec 1d2d376
OP-377 - Update ecs configuration
SzymonKostrubiec baed46b
OP-377 - Update ecs configuration and dependencies
SzymonKostrubiec ae53d61
OP-377 - Update readme
SzymonKostrubiec 1370770
OP-377 - Update github builds
SzymonKostrubiec cf88b96
OP-377 - Add fix for Sylius 1.12, remove symfony/flex from dependencies
SzymonKostrubiec 35e837f
OP-377 - Update codeowners
SzymonKostrubiec af37527
OP-377 - Update .gitignore files, drop .htaccess
SzymonKostrubiec b939072
OP-377 - Add missing OS header
SzymonKostrubiec File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
* @Sylius/core-team | ||
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
name: Build | ||
on: | ||
push: | ||
branches-ignore: | ||
- 'dependabot/**' | ||
pull_request: ~ | ||
release: | ||
types: [ created ] | ||
schedule: | ||
- cron: "0 1 * * 6" | ||
workflow_dispatch: ~ | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
|
||
name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, MySQL ${{ matrix.mysql }}" | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php: [ "8.0", "8.1", "8.2", "8.3" ] | ||
symfony: [ "^5.4", "^6.4" ] | ||
sylius: [ "^1.12", "^1.13" ] | ||
node: [ "18.x", "20.x" ] | ||
mysql: [ "8.0" ] | ||
|
||
exclude: | ||
- sylius: ^1.13 | ||
php: 8.0 | ||
- sylius: ^1.12 | ||
php: 8.0 | ||
symfony: ^6.4 | ||
|
||
env: | ||
APP_ENV: test | ||
DATABASE_URL: "mysql://root:[email protected]/sylius?serverVersion=${{ matrix.mysql }}" | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: "${{ matrix.php }}" | ||
extensions: intl | ||
tools: flex, symfony | ||
coverage: none | ||
|
||
- name: Setup Node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: "${{ matrix.node }}" | ||
|
||
- name: Shutdown default MySQL | ||
run: sudo service mysql stop | ||
|
||
- name: Setup MySQL | ||
uses: mirromutth/[email protected] | ||
with: | ||
mysql version: "${{ matrix.mysql }}" | ||
mysql root password: "root" | ||
|
||
- name: Output PHP version for Symfony CLI | ||
run: php -v | head -n 1 | awk '{ print $2 }' > .php-version | ||
|
||
- name: Install certificates | ||
run: symfony server:ca:install | ||
|
||
- name: Run Chrome Headless | ||
run: google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1 > /dev/null 2>&1 & | ||
|
||
- name: Run webserver | ||
run: (cd tests/Application && symfony server:start --port=8080 --dir=public --daemon) | ||
|
||
- name: Get Composer cache directory | ||
id: composer-cache | ||
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | ||
|
||
- name: Cache Composer | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json **/composer.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-php-${{ matrix.php }}-composer- | ||
|
||
- name: Restrict Sylius version | ||
if: matrix.sylius != '' | ||
run: composer require "sylius/sylius:${{ matrix.sylius }}" --no-update --no-scripts --no-interaction | ||
|
||
- name: Install PHP dependencies | ||
run: composer install --no-interaction | ||
env: | ||
SYMFONY_REQUIRE: ${{ matrix.symfony }} | ||
|
||
- name: Install Behat driver | ||
run: vendor/bin/bdi browser:google-chrome drivers | ||
|
||
- name: Get Yarn cache directory | ||
id: yarn-cache | ||
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | ||
|
||
- name: Cache Yarn | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ steps.yarn-cache.outputs.dir }} | ||
key: ${{ runner.os }}-node-${{ matrix.node }}-yarn-${{ hashFiles('**/package.json **/yarn.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-node-${{ matrix.node }}-yarn- | ||
|
||
- name: Install JS dependencies | ||
run: | | ||
(cd tests/Application && yarn install) | ||
|
||
- name: Prepare test application database | ||
run: | | ||
(cd tests/Application && bin/console doctrine:database:create -vvv) | ||
(cd tests/Application && bin/console doctrine:migrations:migrate -n -vvv -q) | ||
|
||
- name: Prepare test application assets | ||
run: | | ||
(cd tests/Application && bin/console assets:install public -vvv) | ||
(cd tests/Application && yarn build:prod) | ||
|
||
- name: Prepare test application cache | ||
run: (cd tests/Application && bin/console cache:warmup -vvv) | ||
|
||
- name: Load fixtures in test application | ||
run: (cd tests/Application && bin/console sylius:fixtures:load -n) | ||
|
||
- name: Validate composer.json | ||
run: composer validate --ansi --strict | ||
|
||
- name: Validate database schema | ||
run: (cd tests/Application && bin/console doctrine:schema:validate) | ||
|
||
- name: Run PHPSpec | ||
run: vendor/bin/phpspec run --ansi -f progress --no-interaction | ||
|
||
- name: Run PHPUnit | ||
run: vendor/bin/phpunit --colors=always | ||
|
||
- name: Run Behat | ||
run: vendor/bin/behat --colors --strict -vvv --no-interaction -f progress || vendor/bin/behat --colors --strict -vvv --no-interaction -f progress --rerun | ||
|
||
- name: Upload Behat logs | ||
uses: actions/upload-artifact@v3 | ||
if: failure() | ||
with: | ||
name: Behat logs | ||
path: etc/build/ | ||
if-no-files-found: ignore | ||
|
||
- name: Failed build Slack notification | ||
uses: rtCamp/action-slack-notify@v2 | ||
if: ${{ failure() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') }} | ||
env: | ||
SLACK_CHANNEL: ${{ secrets.FAILED_BUILD_SLACK_CHANNEL }} | ||
SLACK_COLOR: ${{ job.status }} | ||
SLACK_ICON: https://github.com/rtCamp.png?size=48 | ||
SLACK_MESSAGE: ':x:' | ||
SLACK_TITLE: Failed build on ${{ github.event.repository.name }} repository | ||
SLACK_USERNAME: ${{ secrets.FAILED_BUILD_SLACK_USERNAME }} | ||
SLACK_WEBHOOK: ${{ secrets.FAILED_BUILD_SLACK_WEBHOOK }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
name: Coding standard | ||
|
||
on: | ||
push: | ||
branches-ignore: | ||
- 'dependabot/**' | ||
pull_request: ~ | ||
release: | ||
types: [ created ] | ||
workflow_dispatch: ~ | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
|
||
name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}" | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php: [ "8.0", "8.1", "8.2", "8.3" ] | ||
symfony: [ "^5.4", "^6.4" ] | ||
sylius: [ "^1.12", "^1.13" ] | ||
node: [ "18.x", "20.x" ] | ||
|
||
exclude: | ||
- sylius: ^1.13 | ||
php: 8.0 | ||
- sylius: ^1.12 | ||
php: 8.0 | ||
symfony: ^6.4 | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: "${{ matrix.php }}" | ||
extensions: intl | ||
tools: symfony | ||
coverage: none | ||
|
||
- name: Get Composer cache directory | ||
id: composer-cache | ||
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | ||
|
||
- name: Cache Composer | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json', '**/composer.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-php-${{ matrix.php }}-composer- | ||
|
||
- name: Restrict Symfony version | ||
if: matrix.symfony != '' | ||
run: | | ||
composer config extra.symfony.require "${{ matrix.symfony }}" | ||
|
||
- name: Restrict Sylius version | ||
if: matrix.sylius != '' | ||
run: composer require "sylius/sylius:${{ matrix.sylius }}" --no-update --no-scripts --no-interaction | ||
|
||
- name: Install PHP dependencies | ||
run: composer install --no-interaction | ||
env: | ||
SYMFONY_REQUIRE: ${{ matrix.symfony }} | ||
|
||
- name: Run PHPStan | ||
run: vendor/bin/phpstan analyse -c phpstan.neon.dist -l 8 src/ | ||
|
||
- name: Run ECS | ||
run: vendor/bin/ecs | ||
|
||
- name: Failed build Slack notification | ||
uses: rtCamp/action-slack-notify@v2 | ||
if: ${{ failure() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') }} | ||
env: | ||
SLACK_CHANNEL: ${{ secrets.FAILED_BUILD_SLACK_CHANNEL }} | ||
SLACK_COLOR: ${{ job.status }} | ||
SLACK_ICON: https://github.com/rtCamp.png?size=48 | ||
SLACK_MESSAGE: ':x:' | ||
SLACK_TITLE: Failed build on ${{ github.event.repository.name }} repository | ||
SLACK_USERNAME: ${{ secrets.FAILED_BUILD_SLACK_USERNAME }} | ||
SLACK_WEBHOOK: ${{ secrets.FAILED_BUILD_SLACK_WEBHOOK }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
/bin/* | ||
!/bin/.gitkeep | ||
|
||
/vendor/ | ||
|
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,61 @@ | ||
imports: | ||
- vendor/sylius/sylius/behat.yml.dist | ||
- vendor/sylius/sylius/src/Sylius/Behat/Resources/config/suites.yml | ||
- tests/Behat/Resources/suites.yml | ||
|
||
default: | ||
formatters: | ||
pretty: | ||
verbose: true | ||
paths: false | ||
snippets: false | ||
|
||
extensions: | ||
FriendsOfBehat\ContextServiceExtension: | ||
imports: | ||
- vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml | ||
- tests/Behat/Resources/contexts.yml | ||
- tests/Behat/Resources/mocker.yml | ||
- tests/Behat/Resources/page.yml | ||
DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~ | ||
|
||
FriendsOfBehat\MinkDebugExtension: | ||
directory: etc/build | ||
clean_start: false | ||
screenshot: true | ||
|
||
Behat\MinkExtension: | ||
files_path: "%paths.base%/vendor/sylius/sylius/src/Sylius/Behat/Resources/fixtures/" | ||
base_url: "https://127.0.0.1:8080/" | ||
default_session: symfony | ||
javascript_session: chrome_headless | ||
sessions: | ||
symfony: | ||
symfony: ~ | ||
chrome_headless: | ||
chrome: | ||
api_url: http://127.0.0.1:9222 | ||
validate_certificate: false | ||
chrome: | ||
selenium2: | ||
browser: chrome | ||
capabilities: | ||
browserName: chrome | ||
browser: chrome | ||
version: "" | ||
marionette: null # https://github.com/Behat/MinkExtension/pull/311 | ||
chrome: | ||
switches: | ||
- "start-fullscreen" | ||
- "start-maximized" | ||
- "no-sandbox" | ||
extra_capabilities: | ||
unexpectedAlertBehaviour: accept | ||
firefox: | ||
selenium2: | ||
browser: firefox | ||
show_auto: false | ||
|
||
FriendsOfBehat\SymfonyExtension: | ||
bootstrap: tests/Application/config/bootstrap.php | ||
kernel: | ||
class: AppKernel | ||
path: tests/Application/app/AppKernel.php | ||
bootstrap: tests/Application/app/autoload.php | ||
class: Tests\BitBag\MercanetBnpParibasPlugin\Application\Kernel | ||
|
||
FriendsOfBehat\VariadicExtension: ~ | ||
|
||
FriendsOfBehat\SuiteSettingsExtension: | ||
paths: | ||
- "features" |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
|
||
const NODE_MODULES_FOLDER_NAME = 'node_modules'; | ||
const PATH_TO_NODE_MODULES = 'tests' . DIRECTORY_SEPARATOR . 'Application' . DIRECTORY_SEPARATOR . 'node_modules'; | ||
|
||
/* cannot use `file_exists` or `stat` as gives false on symlinks if target path does not exist yet */ | ||
if (@lstat(NODE_MODULES_FOLDER_NAME)) | ||
{ | ||
if (is_link(NODE_MODULES_FOLDER_NAME) || is_dir(NODE_MODULES_FOLDER_NAME)) { | ||
echo '> `' . NODE_MODULES_FOLDER_NAME . '` already exists as a link or folder, keeping existing as may be intentional.' . PHP_EOL; | ||
exit(0); | ||
} else { | ||
echo '> Invalid symlink `' . NODE_MODULES_FOLDER_NAME . '` detected, recreating...' . PHP_EOL; | ||
if (!@unlink(NODE_MODULES_FOLDER_NAME)) { | ||
echo '> Could not delete file `' . NODE_MODULES_FOLDER_NAME . '`.' . PHP_EOL; | ||
exit(1); | ||
} | ||
} | ||
} | ||
|
||
/* try to create the symlink using PHP internals... */ | ||
$success = @symlink(PATH_TO_NODE_MODULES, NODE_MODULES_FOLDER_NAME); | ||
|
||
/* if case it has failed, but OS is Windows... */ | ||
if (!$success && strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { | ||
/* ...then try a different approach which does not require elevated permissions and folder to exist */ | ||
echo '> This system is running Windows, creation of links requires elevated privileges,' . PHP_EOL; | ||
echo '> and target path to exist. Fallback to NTFS Junction:' . PHP_EOL; | ||
exec(sprintf('mklink /J %s %s 2> NUL', NODE_MODULES_FOLDER_NAME, PATH_TO_NODE_MODULES), $output, $returnCode); | ||
$success = $returnCode === 0; | ||
if (!$success) { | ||
echo '> Failed o create the required symlink' . PHP_EOL; | ||
exit(2); | ||
} | ||
} | ||
|
||
$path = @readlink(NODE_MODULES_FOLDER_NAME); | ||
/* check if link points to the intended directory */ | ||
if ($path && realpath($path) === realpath(PATH_TO_NODE_MODULES)) { | ||
echo '> Successfully created the symlink.' . PHP_EOL; | ||
exit(0); | ||
} | ||
|
||
echo '> Failed to create the symlink to `' . NODE_MODULES_FOLDER_NAME . '`.' . PHP_EOL; | ||
exit(3); |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's this?