Skip to content

Commit

Permalink
upgrade to sylius 1.10 and 1.11
Browse files Browse the repository at this point in the history
  • Loading branch information
christopherhero committed Jun 29, 2022
1 parent 56512a2 commit d3a02f2
Show file tree
Hide file tree
Showing 32 changed files with 731 additions and 178 deletions.
235 changes: 165 additions & 70 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,103 +1,198 @@
name: build
name: Build

on:
pull_request: ~
push:
branches:
- master
branches-ignore:
- 'dependabot/**'
pull_request: ~
release:
types: [created]
schedule:
- cron: 5 8 * * 3

env:
APP_ENV: test
DATABASE_URL: 'mysql://root:[email protected]/sylius?serverVersion=5.7'
PHP_EXTENSIONS: intl
- cron: "0 1 * * 6" #Run at 1am every Saturday
workflow_dispatch: ~

jobs:
checks:
name: PHP ${{ matrix.php-version }}
runs-on: ubuntu-latest
tests:
runs-on: ubuntu-18.04

name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, MySQL ${{ matrix.mysql }}"

strategy:
fail-fast: false
matrix:
php-version:
- '7.3'
- '7.4'

steps:
- name: Start MySQL
run: sudo /etc/init.d/mysql start
php: ["8.0", "7.4"]
symfony: ["^4.4", "^5.2"]
sylius: ["~1.9", "~1.10.0", "~1.11.0"]
node: ["12.x"]
mysql: ["8.0"]

exclude:
- sylius: ~1.9
symfony: ^5.2

- sylius: ~1.9
php: 8.0

- sylius: ~1.10.0
symfony: ^4.4

- sylius: ~1.10.0
php: 8.0

- name: Checkout
- sylius: ~1.11.0
symfony: ^4.4

- sylius: ~1.11.0
php: 7.4

env:
APP_ENV: test
DATABASE_URL: "mysql://root:[email protected]/sylius?serverVersion=${{ matrix.mysql }}"

steps:
-
uses: actions/checkout@v2

- name: Setup PHP, with composer and extensions
-
name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
php-version: "${{ matrix.php }}"
extensions: intl
coverage: none
tools: symfony
coverage: none

-
name: Setup Node
uses: actions/setup-node@v1
with:
node-version: "${{ matrix.node }}"

-
name: Shutdown default MySQL
run: sudo service mysql stop

- name: Setup node
uses: actions/[email protected]
-
name: Setup MySQL
uses: mirromutth/[email protected]
with:
node-version: '10.x'
mysql version: "${{ matrix.mysql }}"
mysql root password: "root"

- name: Install Composer dependencies
run: composer update --no-progress --no-suggest --prefer-dist --no-interaction
-
name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Validate composer
run: composer validate --strict
-
name: Output PHP version for Symfony CLI
run: php -v | head -n 1 | awk '{ print $2 }' > .php-version

- name: Check composer normalized
run: composer normalize --dry-run
-
name: Install certificates
run: symfony server:ca:install

- name: Check style
run: composer check-style
-
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: Static analysis
run: composer analyse
-
name: Run webserver
run: (cd tests/Application && symfony server:start --port=8080 --dir=public --daemon)

- name: Run phpspec
run: composer phpspec
-
name: Get Composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Run phpunit
run: composer phpunit
-
name: Cache Composer
uses: actions/cache@v2
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 global require --no-progress --no-scripts --no-plugins "symfony/flex:^1.10"
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 --no-scripts

-
name: Get Yarn cache directory
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"

-
name: Cache Yarn
uses: actions/cache@v2
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: Setup database, assets and cache
-
name: Prepare test application database
run: |
(cd tests/Application && bin/console doctrine:database:create -vvv)
(cd tests/Application && bin/console doctrine:schema:create -vvv)
(cd tests/Application && bin/console assets:install public -vvv)
(cd tests/Application && bin/console cache:warmup -vvv)
- name: Install and build Yarn dependencies
-
name: Prepare test application assets
run: |
(cd tests/Application && yarn install)
(cd tests/Application && bin/console assets:install public -vvv)
(cd tests/Application && yarn build)
- name: Output PHP version
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)
sleep 15
- name: Run behat
run: vendor/bin/behat --strict -vvv --no-interaction || vendor/bin/behat --strict -vvv --no-interaction --rerun

- uses: actions/[email protected]
if: failure()
with:
name: logs
path: etc/build
-
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

# After fixing behats uncomment
# -
# name: Run Behat
# run: vendor/bin/behat --colors --strict -vvv --no-interaction || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun
#
# -
# name: Upload Behat logs
# uses: actions/upload-artifact@v2
# if: failure()
# with:
# name: Behat logs
# path: etc/build/
# if-no-files-found: ignore
15 changes: 2 additions & 13 deletions behat.yml.dist
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
imports:
- 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:
DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~

Lakion\Behat\MinkDebugExtension:
FriendsOfBehat\MinkDebugExtension:
directory: etc/build
clean_start: false
screenshot: true
Expand Down Expand Up @@ -45,8 +40,6 @@ default:
acceptSslCerts: true
acceptInsecureCerts: true
unexpectedAlertBehaviour: accept
goog:chromeOptions:
w3c: false # https://github.com/Sylius/Sylius/issues/10561
firefox:
selenium2:
browser: firefox
Expand All @@ -62,7 +55,3 @@ default:
FriendsOfBehat\SuiteSettingsExtension:
paths:
- "features"

gherkin:
filters:
tags: "~@todo && ~@cli" # CLI is excluded as it registers an error handler that mutes fatal errors
48 changes: 35 additions & 13 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,48 @@
],
"license": "MIT",
"require": {
"php": "^7.3",
"php": "^7.3 || ^7.4 || ^8.0",
"setono/doctrine-orm-batcher-bundle": "^0.3.1",
"sylius/sylius": "^1.9",
"sylius/sylius": "~1.9.0 || ~1.10.0 || ~1.11.0",
"symfony/messenger": "^4.4 || ^5.0",
"thecodingmachine/safe": "^1.0"
},
"require-dev": {
"phpspec/phpspec": "^6.2",
"phpunit/phpunit": "^9.3",
"roave/security-advisories": "dev-master",
"setono/code-quality-pack": "^1.4",
"setono/sylius-behat-pack": "^0.1",
"symfony/debug-bundle": "^5.1",
"symfony/dotenv": "^5.1",
"symfony/intl": "^4.4 || ^5.0",
"symfony/web-profiler-bundle": "^5.0",
"symfony/web-server-bundle": "^4.4 || ^5.0"
"behat/behat": "^3.7",
"behat/mink-selenium2-driver": "^1.4",
"dmore/behat-chrome-extension": "^1.3",
"dmore/chrome-mink-driver": "^2.7",
"friends-of-behat/mink": "^1.8",
"friends-of-behat/mink-browserkit-driver": "^1.4",
"friends-of-behat/mink-extension": "^2.4",
"friends-of-behat/page-object-extension": "^0.3",
"friends-of-behat/suite-settings-extension": "^1.0",
"friends-of-behat/symfony-extension": "^2.1",
"friends-of-behat/variadic-extension": "^1.3",
"lakion/mink-debug-extension": "^2.0.0",
"phpspec/phpspec": "^7.0",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "0.12.88",
"phpstan/phpstan-doctrine": "0.12.37",
"phpstan/phpstan-strict-rules": "^0.12.0",
"phpstan/phpstan-webmozart-assert": "0.12.12",
"phpunit/phpunit": "^9.5",
"polishsymfonycommunity/symfony-mocker-container": "^1.0",
"sylius-labs/coding-standard": "^4.0",
"symfony/browser-kit": "^4.4 || ^5.2",
"symfony/debug-bundle": "^4.4 || ^5.2",
"symfony/dotenv": "^4.4 || ^5.2",
"symfony/intl": "^4.4 || ^5.2",
"symfony/web-profiler-bundle": "^4.4 || ^5.2",
"vimeo/psalm": "^4.7"
},
"config": {
"sort-packages": true
"sort-packages": true,
"allow-plugins": {
"symfony/thanks": false,
"dealerdirect/phpcodesniffer-composer-installer": false,
"phpstan/extension-installer": false
}
},
"extra": {
"branch-alias": {
Expand Down
12 changes: 9 additions & 3 deletions tests/Application/.env
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,19 @@ APP_SECRET=EDITME
DATABASE_URL=mysql://[email protected]/setono_sylius_callout_%kernel.environment%?serverVersion=5.5
###< doctrine/doctrine-bundle ###

###> lexik/jwt-authentication-bundle ###
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=acme_plugin_development
###< lexik/jwt-authentication-bundle ###

###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=smtp://localhost
###< symfony/swiftmailer-bundle ###

###> setono/sylius-callouts-plugin ###
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
###< setono/sylius-callouts-plugin ###
###> symfony/messenger ###
MESSENGER_TRANSPORT_DSN=sync://
###> symfony/messenger ###
Loading

0 comments on commit d3a02f2

Please sign in to comment.