Skip to content

Use BuildTestAppAction and migrate from Panther to Chrome session #102

Use BuildTestAppAction and migrate from Panther to Chrome session

Use BuildTestAppAction and migrate from Panther to Chrome session #102

Workflow file for this run

name: Build
on:
push:
branches-ignore:
- 'dependabot/**'
paths-ignore:
- "*.md"
pull_request:
paths-ignore:
- "*.md"
release:
types: [created]
schedule:
-
cron: "0 1 * * 6" # Run at 1am every Saturday
workflow_dispatch: ~
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
runs-on: ubuntu-latest
name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, ${{ matrix.database }}"
strategy:
fail-fast: false
matrix:
php: ["8.3"]
symfony: ["^6.4", "~7.3.0"]
sylius: ["~2.0.0", "~2.1.0"]
database: ["mysql:8.4"]
node: ["22.x"]
env:
APP_ENV: test
steps:
-
uses: actions/checkout@v4
-
name: Parse database string
run: |
DB_TYPE="${DATABASE%%:*}"
DB_VERSION="${DATABASE##*:}"
echo "DB_TYPE=$DB_TYPE" >> $GITHUB_ENV
echo "DB_VERSION=$DB_VERSION" >> $GITHUB_ENV
if [ "$DB_TYPE" = "postgres" ]; then
echo "DATABASE_URL=pgsql://postgres:postgres@127.0.0.1/sylius?serverVersion=$DB_VERSION" >> $GITHUB_ENV
else
echo "DATABASE_URL=mysql://root:root@127.0.0.1/sylius?serverVersion=$DB_VERSION" >> $GITHUB_ENV
fi
env:
DATABASE: ${{ matrix.database }}
-
name: Build Sylius Test Application
uses: SyliusLabs/BuildTestAppAction@v3.2.0
with:
e2e_js: "yes"
cache_key: "${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}"
cache_restore_key: "${{ runner.os }}-php-${{ matrix.php }}-composer-"
database: "${{ env.DB_TYPE }}"
database_version: "${{ env.DB_VERSION }}"
node_version: "${{ matrix.node }}"
php_version: "${{ matrix.php }}"
sylius_version: "${{ matrix.sylius }}"
symfony_version: "${{ matrix.symfony }}"
-
name: Run unit tests
run: vendor/bin/phpunit --colors=always --testsuite=unit
-
name: Validate composer.json
run: composer validate --ansi --strict
-
name: Validate container
run: vendor/bin/console lint:container
-
name: Run Non-unit PHPUnit tests
run: vendor/bin/phpunit --colors=always --testsuite=non-unit
-
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: symfony server:start --port=8080 --no-tls --daemon
-
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@v4
if: failure()
with:
name: "Behat logs - ${{ matrix.sylius }}-${{ github.run_id }}-${{ github.run_number }}"
path: etc/build/
if-no-files-found: ignore
compression-level: 6
overwrite: true