Skip to content

Build

Build #219

Workflow file for this run

name: Build
on:
push:
branches-ignore:
- 'dependabot/**'
pull_request: ~
release:
types: [created]
schedule:
- cron: "0 1 * * 6" # Run at 1am every Saturday
workflow_dispatch: ~
jobs:
mysql-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.1"]
symfony: ["5.4.*", "^6.0"]
sylius: ["~1.12.0", "~1.13.0"]
node: ["18.x"]
mysql: ["8.0"]
env:
APP_ENV: test
DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?serverVersion=${{ matrix.mysql }}"
steps:
-
uses: actions/checkout@v4
-
name: Restrict Sylius version
run: |
composer require --no-update --no-scripts sylius/sylius:${{ matrix.sylius }}
-
name: Build application
uses: SyliusLabs/BuildTestAppAction@v2.2
with:
build_type: "plugin"
cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-sylius-${{ matrix.sylius }}-symfony-${{ matrix.symfony }}"
cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-sylius-${{ matrix.sylius }}-symfony-${{ matrix.symfony }}"
e2e: "yes"
e2e_js: "yes"
database_version: ${{ matrix.mysql }}
php_version: ${{ matrix.php }}
symfony_version: ${{ matrix.symfony }}
-
name: Validate composer.json
run: composer validate --ansi --strict
-
name: Validate database schema
run: (cd tests/Application && bin/console doctrine:schema:validate)
-
name: Run PHPStan
run: vendor/bin/phpstan analyse -c phpstan.neon -l max src/
-
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 || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun
-
name: Upload Behat logs
uses: actions/upload-artifact@v3
if: failure()
with:
name: Behat logs
path: etc/build/
if-no-files-found: ignore
postgres-tests:
runs-on: ubuntu-latest
name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, PostgreSQL ${{ matrix.postgres }}"
strategy:
fail-fast: false
matrix:
php: ["8.1"]
symfony: ["5.4.*", "^6.0"]
sylius: ["~1.12.0", "~1.13.0"]
node: ["18.x"]
postgres: ["14.6"]
env:
APP_ENV: test
DATABASE_URL: "pgsql://postgres:postgres@127.0.0.1/sylius?charset=utf8&serverVersion=${{ matrix.postgres }}"
steps:
- name: Set postgres env
shell: bash
run: |
if [ "${{ matrix.sylius }}" == "~1.12.0" ]; then
echo "USE_LEGACY_POSTGRES_SETUP=yes" >> $GITHUB_ENV
else
echo "USE_LEGACY_POSTGRES_SETUP=no" >> $GITHUB_ENV
fi
-
uses: actions/checkout@v4
-
name: Restrict Sylius version
run: |
composer require --no-update --no-scripts sylius/sylius:${{ matrix.sylius }}
-
name: Build application
uses: SyliusLabs/BuildTestAppAction@v2.2
with:
build_type: "plugin"
cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-sylius-${{ matrix.sylius }}-symfony-${{ matrix.symfony }}"
cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-sylius-${{ matrix.sylius }}-symfony-${{ matrix.symfony }}"
e2e: "yes"
e2e_js: "yes"
database: "postgresql"
database_version: ${{ matrix.postgres }}
legacy_postgresql_setup: ${{ env.USE_LEGACY_POSTGRES_SETUP }}
php_version: ${{ matrix.php }}
symfony_version: ${{ matrix.symfony }}
-
name: Validate composer.json
run: composer validate --ansi --strict
-
name: Validate database schema
run: (cd tests/Application && bin/console doctrine:schema:validate)
-
name: Run PHPStan
run: vendor/bin/phpstan analyse -c phpstan.neon -l max src/
-
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 || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun
-
name: Upload Behat logs
uses: actions/upload-artifact@v3
if: failure()
with:
name: Behat logs
path: etc/build/
if-no-files-found: ignore